Onet.xml ファイルについて

最終更新日: 2011年2月2日

適用対象: SharePoint Foundation 2010

この記事の内容
Onet.xml の機能
カスタム Onet.xml による Web サイト定義タスク
ファイル形式

Microsoft SharePoint Foundation をインストールすると、いくつかの Onet.xml ファイルがインストールされます。1 つのファイルは %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\GLOBAL\XML にインストールされ、展開に対してグローバルに適用されます。いくつかのファイルは %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates 内の各種フォルダーにインストールされます。後者のグループの各ファイルは SharePoint Foundation に付属する、対応するサイト定義に適用されます。これらのサイト定義には、たとえば、ブログ サイト、サーバーの全体管理 Web サイト、会議ワークスペース サイト、およびチーム SharePoint サイトが含まれます。会議ワークスペース サイトおよびチーム SharePoint サイトだけが、複数のサイト定義構成を含んでいます。

グローバルな Onet.xml ファイルでは、展開に対してグローバルに適用する、隠しリストのリスト テンプレート、リスト ベース型、既定の定義構成、およびモジュールを定義します。%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates ディレクトリのサブディレクトリ内にある各 Onet.xml ファイルでは、そのファイルに対応する各サイト定義で使用するナビゲーション領域、リスト テンプレート、ドキュメント テンプレート、構成、モジュール、コンポーネント、およびサーバーから送信される電子メールのフッター部を定義できます。

注意

Onet.xml は Web テンプレートの一部にもなります。DocumentTemplates 要素のような、サイト定義の Onet.xml ファイルに含めることのできる一部の Collaborative Application Markup Language (CAML) 要素は、Web テンプレートの一部である Onet.xml ファイルに含めることはできません。

Onet.xml の機能

Onet.xml ファイルが配置されている場所、およびそのファイルがサイト定義の一部か Web テンプレートの一部かによって、ファイル内のマークアップは以下の一部またはすべての処理を行います。

  • サイト定義または Web テンプレートから作成された Web サイトに組み込まれる Web を範囲とする機能およびサイト コレクションを範囲とする機能の指定。

  • サイト定義または Web テンプレートから作成された Web サイトに組み込まれるリストの種類、ページ、ファイル、および Web パーツの指定。

  • サイト定義のホーム ページやリスト表示画面の上部や横に表示されるナビゲーション領域の定義。

  • 各サイト定義に使用するリスト定義の指定、およびユーザー インターフェイス (UI) でリストを作成する際にこのリスト定義を使用できるかどうかの指定。

  • UI でドキュメント ライブラリ リストを作成するためにサイト定義で使用できるドキュメント テンプレートの指定、およびそのドキュメント テンプレートで使用するファイルの指定。

  • 既定の SharePoint Foundation リストの派生元であるベース リスト型の定義 (この機能を提供するのはグローバルの Onet.xml ファイルのみです。新しいベース リスト型を作成することはできません)。

  • SharePoint Foundation コンポーネントの指定。

  • サーバーから送信する電子メールのフッター部の定義。

カスタム Onet.xml による Web サイト定義タスク

カスタム サイト定義またはカスタム Web テンプレートで使用するカスタム Onet.xml で実行できるタスクの種類は以下のとおりです。

  • サイト定義で使用する代替カスケード スタイル シート (CSS) ファイル、JavaScript ファイル、ASPX ヘッダー ファイルの指定。

  • ホーム ページやリスト ページに使うナビゲーション領域の修正。

  • UI 内のオプションとしての新しいリスト定義の追加。

  • 構成をインストールするときに含めるリスト、モジュール、ファイル、および Web パーツを指定する、サイト定義または Web テンプレートの 1 つの構成の定義。

  • サイト定義または Web テンプレートから作成する Web サイトと共に自動で含める機能の指定。

以下の種類のタスクを、カスタム サイト定義で使用される (ただし、カスタム Web テンプレートでは使用されない) カスタム Onet.xml で実行できます。

  1. ドキュメント ライブラリを作成するドキュメント テンプレートの追加。

  2. 構成をインストールするときに含めるリスト、モジュール、ファイル、および Web パーツを指定する、サイト定義の 1 つ以上の構成の定義。

  3. Web サイトから送信される電子メール メッセージのカスタム フッターの、サイト定義に基づいた定義。

  4. ファイル ダイアログ ボックスのポスト プロセッサのような、Web サイト用のカスタム コンポーネントの、サイト定義に基づいた定義。

注意注意

サイト定義または Web テンプレートで新しいベース リスト型を作成することはできません。グローバルの Onet.xml ファイルに定義されたベース型のみが、サポートされるベース型です。

注意注意

元からインストールされている Onet.xml ファイルへの変更はサポートされません。このファイルを変更すると、既存のサイトが破壊される可能性があります。また、SharePoint Foundation の更新プログラムまたはサービス パックをインストールする場合、またはインストールを次の製品バージョンにアップグレードする場合、Microsoft が提供するファイルの新しいバージョンが存在する可能性があります。この場合、インストールはユーザーの変更と新しいバージョンを結合できません。組み込みのサイトの種類に似たサイトの種類が必要で、Web テンプレートを使用できない場合は、独自の Onet.xml ファイルを使用して新しいサイト定義を作成します。元のファイルを変更しないでください。詳細については、「[方法] カスタム サイト定義および構成を作成する」を参照してください。Web テンプレートを使用できない場合の詳細については、「カスタム Web テンプレートとカスタム サイト定義の使い分け」を参照してください。

ファイル形式

Onet.xml ファイルの各種要素の定義方法について、以下のセクションで説明します。

Project 要素

Project は最上位レベルの要素で、サイト定義内のいずれかのサイト構成に基づいて作成するサイトの名称 (明示的に指定しなかった場合に適用されるもの) を指定します。また、リスト定義を記述したファイルをサブフォルダーに分けて格納する、親ディレクトリを指定します。

注意

特に示されていない限り、以下の例で使用されている抜粋は、STS サイト定義用の Onet.xml ファイルから引用されたものです。

<Project 
  Title="$Resources:core,onet_TeamWebSite;" 
  Revision="2" 
  ListDir="$Resources:core,lists_Folder;" 
  xmlns:ows="Microsoft SharePoint" 
  UIVersion="4">

注意

このトピックのすべての例で、"$Resources" から開始する文字列は, .resx ファイルで定義されている定数です。たとえば、"$Resources:onet_TeamWebSite" は core.resx で "Team Site" として定義されています。カスタム Onet.xml ファイルを作成する場合は、リテラル文字列を使用できます。

この要素には、いくつかのその他の属性を含めることもできます。詳細については、「Project 要素 (サイト)」を参照してください。

Project 要素に、その要素が定義するサイト定義を識別する属性は含まれません。各 Onet.xml は、そのファイルが存在するディレクトリ パスによってサイト定義に関連付けられます。これは、(グローバルな Onet.xml を除いて) %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates\site_type\XML\ です。site_type は、STS、MPS のような、サイト定義の名前です。Web テンプレートの Onet.xml ファイルは、Web テンプレートの wsp パッケージに含めることで、テンプレートに関連付けられます。

NavBars 要素には、ホーム ページやリスト表示のトップ ナビゲーション領域の定義、およびホーム ページの横に置くナビゲーション領域の定義を記述します。

注意

NavBar は、ツール バーとは限りません。たとえば、リンクのツリーの場合もあります。

<NavBars>
  <NavBar 
    Name="$Resources:core,category_Top;" 
    Separator="&amp;nbsp;&amp;nbsp;&amp;nbsp;" 
    Body="&lt;a ID='onettopnavbar#LABEL_ID#' href='#URL#' accesskey='J'&gt;#LABEL#&lt;/a&gt;" 
    ID="1002" />
  <NavBar 
    Name="$Resources:core,category_Documents;" 
    Prefix="&lt;table border='0' cellpadding='4' cellspacing='0'&gt;" 
    Body="&lt;tr&gt;&lt;td&gt;&lt;table border='0' cellpadding='0' cellspacing='0'&gt;&lt;tr&gt;&lt;td&gt;&lt;img src='/_layouts/images/blank.gif' id='100' alt='' border='0'&gt;&amp;nbsp;&lt;/td&gt;&lt;td valign='top'&gt;&lt;a id='onetleftnavbar#LABEL_ID#' href='#URL#'&gt;#LABEL#&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;" 
    Suffix="&lt;/table&gt;" 
    ID="1004" />
    ...
</NavBars>

NavBarLink 要素は、上部や横のナビゲーション領域に置くリンクの定義を記述します。NavBar セクション全体で、左右の領域にある新しいリンクをグループ化します。各 NavBar 要素には、ナビゲーション バーの表示名と一意識別子を指定し、ナビゲーション バーの表示方法を定義します。

SharePoint Foundation ページ上のナビゲーション領域のカスタマイズについては、「Web サイト ナビゲーション」を参照してください。

ListTemplates 要素

ListTemplates セクションでは、サイト定義の一部であるリスト定義を指定します。このマークアップは下位互換性のためにのみサポートされています。新しいカスタム リスト型は機能として定義する必要があります。次の例は、会議ワークスペースのサイト定義用の Onet.xml ファイルから引用されています。

<ListTemplates>
  <ListTemplate 
    Name="meetings" 
    DisplayName="$Resources:xml_onet_mwsidmeetingDisp;" 
    Type="200" 
    BaseType="0" 
    Unique="TRUE" 
    Hidden="TRUE" 
    HiddenList="TRUE" 
    DontSaveInTemplate="TRUE" 
    SecurityBits="11" 
    Description="$Resources:xml_onet_mwsidmeetingDesc;"
    Image="/_layouts/images/itevent.gif">
  </ListTemplate>
  <ListTemplate 
    Name="agenda" 
    DisplayName="$Resources:xml_onet_mwsidagendaDisp;" 
    Type="201" 
    BaseType="0" 
    FolderCreation="FALSE" 
    DisallowContentTypes="TRUE" 
    SecurityBits="11" 
    Description="$Resources:xml_onet_mwsidagendaDesc" 
    Image="/_layouts/images/itagnda.gif">
  </ListTemplate>
    ...
</ListTemplates>

ListTemplate 要素には、リスト定義を識別する内部名を指定します。ListTemplate 要素には、リスト定義の表示名も指定します。また、サイド リンク バーにリンクを追加するオプションを、リスト作成 UI で既定として選択状態で表示するかどうかも指定します。さらに、リスト定義の説明や、リスト定義を表す画像へのパスも指定します。どちらも、リスト作成 UI に表示されます。Hidden="TRUE" が指定されている場合、リスト定義はリスト作成 UI にオプションとして表示されません。

ListTemplate 要素には、Type と BaseType という 2 つの型用の属性があります。Type 属性はリスト定義の一意識別子を指定します。また、BaseType 属性は、リスト定義のベース リスト型を指定し、グローバルの Onet.xml ファイルに定義されたベース リスト型の 1 つに指定された Type 値と対応しています。

新しいリスト型の作成方法については、「[方法] カスタム リスト定義を作成する」を参照してください。

DocumentTemplates 要素

DocumentTemplates セクションでは、ドキュメント ライブラリ作成用の UI に含めるドキュメント テンプレートを定義します。このマークアップは下位互換性のためにのみサポートされています。新しいドキュメントの種類は、コンテンツ タイプとして定義する必要があります。詳細については、この SDK の「コンテンツ タイプ」セクションを参照してください。

<DocumentTemplates>
  ...
  <DocumentTemplate 
    Path="STS" 
    DisplayName="$Resources:core,doctemp_Word;" 
    Type="121" 
    Default="TRUE" 
    Description="$Resources:core,doctemp_Word_Desc;">
    <DocumentTemplateFiles>
      <DocumentTemplateFile 
        Name="doctemp\word\wdtmpl.dotx" 
        TargetName="Forms/template.dotx" 
        Default="TRUE" />
    </DocumentTemplateFiles>
  </DocumentTemplate>
  ...
</DocumentTemplates>

DocumentTemplate 要素には、ドキュメント テンプレートの表示名、一意識別子、説明を指定します。Default を TRUE に設定すると、このテンプレートは、サイト定義内の構成の 1 つに基づくサイトに作成されるドキュメント ライブラリに対して選択される既定のテンプレートになります。名前は単数形ですが、DocumentTemplate 要素には、実際には DocumentTemplateFile 要素のコレクションを含めることができます。各 DocumentTemplateFile 要素の Name 属性には、テンプレートとして機能するローカル ファイルへの相対パスを指定します。TargetName 属性には、ドキュメント ライブラリを作成するときのテンプレート ファイルのターゲット URL を指定します。Default 属性には、このファイルが既定のテンプレート ファイルであるかどうかを指定します。

注意

Web テンプレート内の Onet.xml ファイルに DocumentTemplate 要素を含めることはできません。

ドキュメント テンプレートに関連する開発タスクについては、「[方法] ドキュメント テンプレート、ファイルの種類、および編集するアプリケーションをサイト定義に追加する」を参照してください。

BaseTypes 要素

グローバルの Onet.xml ファイルの BaseTypes 要素は、サイトやリストを作成するときに、SharePoint Foundation のすべてのリスト定義の基本となる基本のリスト型を定義するために使用されます。リスト テンプレート セクションに指定される各リスト テンプレートは、Generic List、Document Library、Discussion Forum、Vote or Survey、または Issues List のいずれかのベース型で識別されます。

注意

SharePoint Foundation では、BaseTypes セクションはグローバルの Onet.xml ファイルにのみ実装されます。以下の例は、このファイルから引用されたものです。

<BaseTypes>
  <BaseType 
    Title="Generic List" 
    Image="/_layouts/images/itgen.gif" 
    Type="0">
      <MetaData>
        <Fields>
          <Field 
            ID="{1d22ea11-1e32-424e-89ab-9fedbadb6ce1}" 
            ColName="tp_ID" 
            RowOrdinal="0" 
            ReadOnly="TRUE" 
            Type="Counter" 
            Name="ID" 
            PrimaryKey="TRUE" 
            DisplayName="$Resources:core,ID" 
            SourceID="https://schemas.microsoft.com/sharepoint/v3" 
            StaticName="ID">
          </Field>
          <Field 
            ID="{03e45e84-1992-4d42-9116-26f756012634}" 
            RowOrdinal="0" 
            Type="ContentTypeId" 
            Sealed="TRUE" 
            ReadOnly="TRUE" 
            Hidden="TRUE" 
            DisplayName="$Resources:core,Content_Type_ID;"
            Name="ContentTypeId" 
            DisplaceOnUpgrade="TRUE"
            SourceID="https://schemas.microsoft.com/sharepoint/v3" 
            StaticName="ContentTypeId" 
            ColName="tp_ContentTypeId">
          </Field>
          ...
      </Fields>
    </MetaData>
  </BaseType>
  ...
</BaseTypes>

BaseType 要素には、ベース型から派生したリストで使用するフィールドを指定します。各 Field 要素の Type 属性は、FldTypes.xml で定義されたフィールド型を持つフィールドを識別します。

注意注意

グローバルの Onet.xml ファイルの内容は書き換えないでください。これを行うと、インストールが破壊される可能性があります。ベース リスト型を追加することはできません。リスト定義の追加方法については、「[方法] カスタム リスト定義を作成する」を参照してください。

Configurations 要素

Configurations セクションの各 Configuration 要素には、サイト定義の構成または Web テンプレートをインスタンス化するときに既定で作成されるリスト、モジュール、および機能を指定します。

<Configurations>
  ...
  <Configuration 
    ID="0" 
    Name="Default">
    <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" />
      ...
    </Lists>
    <Modules>
      <Module 
        Name="Default" />
    </Modules>
    <SiteFeatures>
      <Feature 
        ID="00BFEA71-1C5E-4A24-B310-BA51C3EB7A57" />
      <Feature 
        ID="FDE5D850-671E-4143-950A-87B473922DC7" />
    </SiteFeatures>
    <WebFeatures>
      <Feature 
        ID="00BFEA71-4EA5-48D4-A4AD-7EA5C011ABE5" />
      <Feature 
        ID="F41CC668-37E5-4743-B4A8-74D1DB3FD8A4" />
    </WebFeatures>
  </Configuration>
  ...
</Configurations>

ID 属性は構成を識別します (Configurations 要素内に他の構成が存在する場合はそれらの構成に対して相対的に一意に識別します)。Onet.xml ファイルがサイト定義の一部である場合、ID の値は、WebTemp*.xml ファイル内の Configuration 要素の ID 属性に対応します (Web テンプレートに WebTemp*.xml ファイルは含まれません)。

List 要素には、リスト定義の題名と、リストの作成先 URL を記述します。QuickLaunchUrl 属性を使用して、リスト定義から作成したリストにサイド リンク バーのリンクを追加する際に使う、表示ページの URL を設定できます。Type 属性の値は、リスト テンプレート セクションに定義したテンプレートの Type 属性に対応します。各 Module 要素には、モジュール セクションで定義したモジュールの名前を記述します。

SiteFeatures 要素、WebFeatures 要素に、サイト コレクションの参照、サイトの範囲内で有効な機能をそれぞれ記述しておけば、サイト定義に取り込まれます。

後処理の際、Configuration 要素内の ExecuteUrl 要素で、サイト作成後に呼び出される URL を指定できます。

定義構成については、「[方法] カスタム サイト定義および構成を作成する」を参照してください。

Modules 要素

Modules コレクションには、モジュールのプールを指定します。構成から作成する Web サイトにモジュールを含める必要がある場合は、プール内の任意のモジュールを構成で参照できます。一方、各 Module 要素には、含める 1 つ以上のファイル (多くの場合、Web パーツ用のファイル) を指定します。これは、スキーマ ファイルと共にフロントエンド Web サーバーのメモリの中にキャッシュされます。Module 要素の Url 属性を使用して、フォルダーをサイト定義の一部として準備できます。このマークアップは下位互換性のためにのみサポートされます。新しいモジュールは機能に組み込む必要があります。

<Modules>
  <Modules>
    <Module 
      Name="Default" 
      Url="" 
      Path="">
      <File 
        Url="default.aspx" 
        NavBarHome="True">
        <View 
          List="$Resources:core,lists_Folder;
          /$Resources:core,announce_Folder;" 
          BaseViewID="0" 
          WebPartZoneID="Left" />
        <View 
          List="$Resources:core,lists_Folder;
          /$Resources:core,calendar_Folder;" 
          BaseViewID="0" 
          RecurrenceRowset="TRUE" 
          WebPartZoneID="Left" 
          WebPartOrder="2" />
        <AllUsersWebPart 
          WebPartZoneID="Right" 
          WebPartOrder="1"><![CDATA[<WebPart 
            xmlns="https://schemas.microsoft.com/WebPart/v2"
            xmlns:iwp="https://schemas.microsoft.com
            /WebPart/v2/Image">
            <Assembly>Microsoft.SharePoint, Version=12.0.0.0, 
              Culture=neutral, 
              PublicKeyToken=71e9bce111e9429c</Assembly>
            <TypeName>Microsoft.SharePoint.WebPartPages.ImageWebPart
            </TypeName>
            <FrameType>None</FrameType>
            <Title>$Resources:wp_SiteImage;</Title>
            <iwp:ImageLink>/_layouts/images/homepage.gif
            </iwp:ImageLink>
            <iwp:AlternativeText>$Resources:core,sitelogo_wss;
            </iwp:AlternativeText>
            </WebPart>]]>
        </AllUsersWebPart>
        <View 
          List="$Resources:core,lists_Folder;
          /$Resources:core,links_Folder;" 
          BaseViewID="0" 
          WebPartZoneID="Right" 
          WebPartOrder="2" />
          <NavBarPage 
            Name="$Resources:core,nav_Home;" 
            ID="1002" 
            Position="Start" />
          <NavBarPage 
            Name="$Resources:core,nav_Home;" 
            ID="0" 
            Position="Start" />
      </File>
    </Module>
  ...
</Modules>

Module 要素にはモジュール名を指定します。これは Onet.xml の構成内に指定されたモジュール名に対応します。

モジュールの各 File 要素の Url 属性には、サイトを作成するときに作成するファイルの名前を指定します。モジュールに含まれるファイルが 1 つのみの場合 (たとえば default.aspx)、NavBarHome="TRUE" を指定すると、そのファイルはナビゲーション バーの Home リンクのターゲット ページとして機能します。default.aspx の File 要素にも、ホーム ページに含める Web パーツ、およびそのホーム ページにリンクする他のページのホーム ページに関する情報を指定します。

Module 要素は、サイト定義の一部である Onet.xml ファイルにのみ含めることができます。Web テンプレートの一部である Onet.xml ファイルに含めることはできません。

SharePoint Foundation におけるモジュールの使用方法については、「[方法] ファイルを準備する」を参照してください。

Components 要素

Components 要素には、この定義に基づき作成したサイトに組み込むコンポーネントを指定します。

<Components>
  <FileDialogPostProcessor ID="BDEADEE4-C265-11d0-BCED-00A0C90AB50F" />
</Components>

Components 要素は、サイト定義の一部である Onet.xml ファイルにのみ含めることができます。Web テンプレートの一部である Onet.xml ファイルに含めることはできません。

ServerEmailFooter 要素

ServerEmailFooter 要素には、サーバーから送信する電子メール メッセージのフッター部を記述します。

<ServerEmailFooter>$Resources:ServerEmailFooter;</ServerEmailFooter>

ServerEmailFooter 要素は、サイト定義の一部である Onet.xml ファイルにのみ含めることができます。Web テンプレートの一部である Onet.xml ファイルに含めることはできません。

関連項目

概念

サイト スキーマ