Onet.xml
Windows SharePoint Services 3.0 をインストールすると、6 つの Onet.xml ファイルがセットアップ ディレクトリ内にコピーされます。\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\GLOBAL\XML にある 1 ファイルは、展開に対しグローバルに適用されます。...\TEMPLATE\SiteTemplates 以下の異なるフォルダにある 5 ファイルは、それぞれ Windows SharePoint Services 3.0 に付属の 5 つのサイト定義に適用されます。これらのサイト定義は、ブログ サイト、サーバーの全体管理 Web サイト、Wiki サイト、会議ワークスペース サイト、およびチーム SharePoint サイトです。会議ワークスペース サイトおよびチーム SharePoint サイトだけが、Windows SharePoint Services 3.0 に複数のサイト定義構成を含んでいます。
グローバルな Onet.xml ファイルは、展開に対しグローバルに適用される、隠しリストのテンプレート、リスト ベース型、既定の定義構成、およびモジュールを定義します。一方、\SiteTemplates ディレクトリ以下の 5 つの Onet.xml ファイルは、各サイト定義で使用される、ナビゲーション領域、リスト テンプレート、ドキュメント テンプレート、構成、モジュール、コンポーネント、およびサーバーから送信される電子メールのフッター部を定義します。
Onet.xml の機能
用途に応じ、Onet.xml ファイルは次のような複数の機能を提供できます。
サイト定義のホーム ページやリスト表示画面の上部や横に表示されるナビゲーション領域の定義。
各サイト定義に使用するリスト定義、および [作成] ページでリストを作成する際にこのリスト定義を使用できるかどうかの指定。
[新規作成] ページでドキュメント ライブラリ リストを作成するためにサイト定義で使用できるドキュメント テンプレート、およびその中で使用するファイルの指定。
既定の Windows SharePoint Services リストから派生する、ベース リスト型の定義 (グローバル Onet.xml ファイルにのみこの機能があります)。
各サイト定義に使用するリストやモジュールの構成の設定。
Windows SharePoint Services コンポーネントの指定。
サーバーから送信する電子メールのフッター部の定義。
Onet.xml による Web サイト定義タスク
カスタム Onet.xml ファイルに次のような事項を記述することにより、カスタムサイト定義を作成できます。
サイト定義で使用する代替カスケード スタイル シート (CSS) ファイル、JavaScript ファイル、ASPX ヘッダー ファイルの指定。
ホーム ページやリスト ページに使うナビゲーション領域の修正。
[作成] ページに選択肢を表示するためのリスト定義の追加。
ドキュメント ライブラリを作成するための、ドキュメント テンプレートの追加。
サイト定義構成がインスタンス化されるときに含まれるリスト、モジュール、ファイル、Web パーツを指定して、サイト定義の 1 つ以上の構成を定義すること。
警告
Windows SharePoint Services が稼働するサーバー上にインストールされた元の Onet.xml ファイルを直接修正すると、既に作成済みのサイトにも影響が及ぶおそれがあります。また、Windows SharePoint Services の更新ファイルやサービス パックを適用したり、新しい製品バージョンにアップグレードしたりすると、このファイルも上書きされ、修正した事項が消えてしまうことがあります。したがって、元のファイルは修正せず、サイトごとに新しい Onet.xml を用意してください。詳細については、「[方法] カスタム サイト定義および構成を作成する」を参照してください。
ファイル形式
Onet.xml ファイルに記述できる要素について、以下に説明します。
Project 要素
Project は最上位レベルの要素で、サイト定義内のいずれかのサイト構成に基づいて作成するサイトの名称 (明示的に指定しなかった場合に適用されるもの) と、リスト定義を記述したファイルをサブフォルダに分けて格納する、親ディレクトリを指定します。
注意
特に明示していなければ、以下に示す例は、STS サイト定義に使用する Onet.xml ファイルから引用したものです。
<Project
Title="$Resources:onet_TeamWebSite;"
Revision="2"
ListDir="$Resources:core,lists_Folder;"
xmlns:ows="Microsoft SharePoint">
注意
このトピックのすべての抜粋で、"$Resources" から開始する文字列は, .resx ファイルで定義されている定数です。たとえば、"$Resources:onet_TeamWebSite" は core.resx で "Team Site" と定義されています。カスタム Onet.xml ファイルを作成する場合は、リテラル文字列を使用できます。
この要素は、スタイル定義に使用する代替 CSS ファイルを指定する AlternateCSS 属性もあります。CustomJSUrl 属性はカスタム スクリプトを記述する代替 JavaScript ファイルを指定し、AlternateHeader 属性は代替ヘッダーを定義する ASPX ファイルを指定します。
Project 要素には、定義するサイト定義を識別する属性は含まれていません。各 Onet.xml は、そのファイルが存在するディレクトリ パスによってサイト定義に関連付けられています。これは、(グローバルな Onet.xml を除いて) Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\SiteTemplates\サイト タイプ\XML\ です。サイト タイプ は、STS や MPS など、サイト定義の名前です。
NavBars 要素
NavBars 要素には、ホーム ページやリスト表示のトップ ナビゲーション領域の定義、およびホーム ページの横に置くナビゲーション領域の定義を記述します。
注意
NavBar は、ツールバーとは限りません。たとえば、リンクのツリーの場合もあります。
<NavBars>
<NavBar
Name="$Resources:core,category_Top;"
Separator="&nbsp;&nbsp;&nbsp;"
Body="<a ID='onettopnavbar#LABEL_ID#' href='#URL#' accesskey='J'>#LABEL#</a>"
ID="1002" />
<NavBar
Name="$Resources:core,category_Documents;"
Prefix="<table border=0 cellpadding=4 cellspacing=0>"
Body="<tr><td><table border=0 cellpadding=0 cellspacing=0><tr><td><img src='/_layouts/images/blank.gif' ID='100' alt='' border=0>&nbsp;</td><td valign=top><a ID=onetleftnavbar#LABEL_ID# href='#URL#'>#LABEL#</td></tr></table></td></tr>"
Suffix="</table>"
ID="1004" />
...
</NavBars>
NavBarLink 要素は、上部や横のナビゲーション領域に置くリンクの定義を記述します。NavBar セクション全体で、左右の領域にある新しいリンクをグループ化します。各 NavBar 要素には、ナビゲーション バーの表示名と一意の識別子を指定し、ナビゲーション バーの表示方法を定義します。
Windows SharePoint Services ページ上のナビゲーション領域のカスタマイズについては、「サイト ナビゲーションをカスタマイズする」を参照してください。
ListTemplates 要素
ListTemplates セクションには、サイト定義のうち、リスト定義の部分を記述します。
注意
ListTemplates セクションは、標準 Windows SharePoint Services サイト定義の Onet.xml ファイルにはありません。ここでは代わりに、リスト定義機能と要素 .xml ファイルを使ってリスト テンプレートを定義しています。次の例は、会議ワークスペース サイト定義に使われている 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 要素には、リスト定義の表示名も指定できます。また、サイド リンク バーにリンクを追加するためのオプションを、[新規作成] ページに、選択状態で表示するかどうかを指定することもできます。さらに、リスト定義に関する説明や、これをアイコンとして表示するために使用する画像ファイルのパスも記述できます。どちらも [作成] ページに表示されます。Hidden="TRUE" が指定されている場合は、リスト定義が [作成] ページに選択肢として表示されなくなります。
ListTemplate 要素には、Type、BaseType という 2 つの属性があります。Type 属性はリスト定義を識別する一意の識別子を表します。また、BaseType 属性はリスト定義のベース リスト型を表し、グローバル Onet.xml ファイル (\TEMPLATE\GLOBAL\XML) に定義されたベース リスト型の Type 値と対応しています。
プログラム上でリスト テンプレートを追加する手順については、「[方法] カスタム リスト定義を作成する」を参照してください。
DocumentTemplates 要素
DocumentTemplates セクションには、[新規作成] ページに列挙するドキュメント テンプレートを定義します。
<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 とすると、このテンプレートは、Onet.xml で指定しているサイト定義内の構成で作成されたサイトに作成されたドキュメント ライブラリに対して選択される既定のテンプレートになります。名前は単数形ですが、DocumentTemplate 要素には、実際には DocumentTemplateFile 要素のコレクションが含まれます。各 DocumentTemplateFile 要素の Name 属性には、テンプレートの内容を記述したローカル ファイルを指す相対パスを指定します。TargetName 属性は、ドキュメント ライブラリの作成時にテンプレート ファイルを複製する、複製先 URL を表します。Default 属性は、これが既定のテンプレート ファイルであるかどうかを表します。
プログラム上でドキュメント テンプレートを操作する手順については、「[方法] ドキュメント テンプレート、ファイルの種類、および編集するアプリケーションをサイト定義に追加する」を参照してください。
BaseTypes 要素
BaseTypes 要素は、グローバル Onet.xml ファイルでは、サイトやリストを作成する際 Windows SharePoint Services のすべてのリスト定義の基本となる、5 種類のリスト型を定義するために使います。リスト テンプレート セクションにある各リスト テンプレートは、Generic List、Document Library、Discussion Forum、Vote or Survey、Issues List のいずれかのベース型に属します。
注意
Windows SharePoint Services 3.0 では、BaseTypes セクションはグローバル Onet.xml ファイル (\TEMPLATE\GLOBAL\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 ファイル (\TEMPLATE\GLOBAL\XML) の内容は書き換えないでください。システム全体が正常に動作しなくなるおそれがあります。ベース リスト型を追加することはできません。リスト定義を追加する手順については、「[方法] カスタム リスト定義を作成する」を参照してください。
Configurations 要素
Configurations セクションの各 Configuration 要素には、サイト定義構成がインスタンス化されると自動的に作成されるリストやモジュールを記述します。
<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 属性は、サイト定義内の他の構成に対して構成を一意に識別するためのもので、WebTemp.xml ファイルの Configuration 要素の ID 属性に対応します。
各 List 要素には、リスト定義の題名と、リストの作成先 URL を記述します。QuickLaunchUrl 属性には、リスト定義から作成したリストにサイド リンク バーのリンクを追加する際に使う、表示ページの URL を設定できます。Type 属性の値は、リスト テンプレート セクションに定義したテンプレートの Type 属性に対応します。各 Module 要素には、モジュール セクションで定義したモジュールの名前を記述します。
SiteFeatures 要素、WebFeatures 要素に、サイト コレクションの参照、サイトの範囲内で有効な機能をそれぞれ記述しておけば、サイト定義に取り込まれます。
後処理の際、Configuration 要素内の ExecuteUrl 要素で、サイト作成後に呼び出される URL を指定できます。
定義構成については、「[方法] サイト定義の構成を使用する」を参照してください。
Modules 要素
Modules コレクションには、サイト コレクションを作成すると既定で組み込まれるモジュールを指定します。一方、各 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 属性には、サイト作成の際に作るファイルの名前を指定します。モジュールが単一のファイル (たとえば default.aspx) から成る場合、NavBarHome="TRUE" と記述すると、このファイルがナビゲーション バーの Home リンク先になります。default.aspx の File 要素は、ホーム ページに組み込まれる Web パーツを指定し、ホーム ページにリンクする他のページに対して必要な情報を提供するためにも使われます。
Windows SharePoint Services 3.0 におけるモジュールの使い方の詳細については、「[方法] ファイルを準備する」を参照してください。
Components 要素
Components 要素には、この定義に基づき作成したサイトに組み込むコンポーネントを指定します。
<Components>
<FileDialogPostProcessor ID="BDEADEE4-C265-11d0-BCED-00A0C90AB50F" />
</Components>
ServerEmailFooter 要素
ServerEmailFooter 要素には、サーバーから送信する電子メール メッセージのフッター部を記述します。
<ServerEmailFooter>$Resources:ServerEmailFooter;</ServerEmailFooter>