Schema.xml
[作成] ページに選択肢として表示される各リスト定義に対応して、ローカル ドライブ:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\FEATURES 以下にそれぞれ Feature サブフォルダがあり、ここに Schema.xml ファイルがあります。Schema.xml ファイルには、対応するリスト定義に基づき作成したリストで使う、ビュー、フォーム、ツール バー、特殊フィールドの定義があります。
Schema.xml によるリスト定義
Schema.xml ファイルには、次のような事項を記述してリスト定義をカスタマイズできます。
FldTypes.xml で定義された基本フィールドの種類に組み込まれたカスタム フィールドを追加 (カスタム基本フィールドの種類は作成できません)
このリスト定義に基づき作成したリストで使える、ユーザー設定ビューの定義
リスト アイテムを操作するための、ユーザー設定フォーム ページの指定
リストに対応して画面に表示される、既定の説明文の設定
リスト ビューの横にあるナビゲーション領域に表示する、アクション領域の定義
警告
Windows SharePoint Services が稼働するサーバー上にインストールされた元の Schema.xml ファイルを直接修正すると、既に作成済みのリストにも影響が及ぶおそれがあります。また、Windows SharePoint Services の更新ファイルやサービス パックを適用したり、新しい製品バージョンにアップグレードしたりすると、このファイルも上書きされ、修正した事項が消えてしまうことがあります。したがって、元のスキーマ ファイルは修正せず、カスタム リスト定義フィーチャーを作成するようにしてください。具体的な手順については「[方法] カスタム リスト定義を作成する」を参照してください。
ファイル形式
List 要素
最上位の List 要素には、リスト定義の内部名および表示名、リストに使うテキストの表示方向、リストの作成先を表すサイト相対 URL を記述します。
注意
このトピックのすべての XML 例で、"$Resources" から始まる文字列には C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\Resources 内の .resx ファイルで定義された定数が含まれます。
<List
xmlns:ows="Microsoft SharePoint"
Title="Tasks"
FolderCreation="FALSE"
Direction="$Resources:Direction;"
Url="Lists/Tasks"
BaseType="0">
Schema.xml ファイルでは一般に、List 要素の属性値としてサイト相対 URL を記述するのは不適切です。理由は、サイト定義の Onet.xml ファイルに記述したリスト設定で上書きされてしまうからです。この要素では、XML 名前空間として Microsoft SharePoint を指定することもできます。BaseType 属性には、Onet.xml ファイルの BaseTypes 要素で定義された基底リスト型を指定します。VersioningEnabled 属性は、このリスト定義に基づいて作成したドキュメント ライブラリに対して、明示的に指定しない場合、バージョン管理機能を有効にするかどうかを表します。
MetaData 要素
MetaData 要素は、List 要素内のリスト メタデータをグループ化します。このグループには次の副要素を入れることもできます。
ContentTypes 要素
ContentTypes 要素は、このリスト定義に基づいて作成したリストに関連付ける、コンテンツ タイプを表します。
<MetaData>
<ContentTypes>
<ContentTypeRef
ID="0x0108">
<Folder
TargetName="Task" />
</ContentTypeRef>
<ContentTypeRef
ID="0x0120" />
</ContentTypes>
Fields 要素
Fields 要素には、リスト定義で必要となる、特殊フィールドの定義を記述します。
<Fields>
<Field
ID="{a8eb573e-9e11-481a-a8c9-1104a54b2fbd}"
Type="Choice"
Name="Priority"
DisplayName="$Resources:core,Priority;"
SourceID="https://schemas.microsoft.com/sharepoint/v3"
StaticName="Priority">
<CHOICES>
<CHOICE>$Resources:core,Priority_High;</CHOICE>
<CHOICE>$Resources:core,Priority_Normal;</CHOICE>
<CHOICE>$Resources:core,Priority_Low;</CHOICE>
</CHOICES>
<MAPPINGS>
<MAPPING Value="1">$Resources:core,Priority_High;</MAPPING>
<MAPPING Value="2">$Resources:core,Priority_Normal;</MAPPING>
<MAPPING Value="3">$Resources:core,Priority_Low;</MAPPING>
</MAPPINGS>
<Default>$Resources:core,Priority_Normal;</Default>
</Field>
...
<Field
ID="{d2311440-1ed6-46ea-b46d-daa643dc3886}"
Type="Number"
Name="PercentComplete"
Percentage="TRUE"
Min="0"
Max="1"
DisplayName="$Resources:core,Percent_Complete;"
SourceID="https://schemas.microsoft.com/sharepoint/v3"
StaticName="PercentComplete">
</Field>
<Field
ID="{53101f38-dd2e-458c-b245-0c236cc13d1a}"
Type="User"
List="UserInfo"
Name="AssignedTo"
DisplayName="$Resources:core,Assigned_To;"
SourceID="https://schemas.microsoft.com/sharepoint/v3"
StaticName="AssignedTo">
</Field>
...
</Fields>
各 Field 要素には、表示名 (DisplayName)、内部名 (Name)、フィールド型 (Type)、必要に応じてその他のプロパティを記述します。フィールド型は、このフィールドの元になる FldTypes.xml に定義されているものを指定します。
Schema.xml ファイルにユーザー設定フィールドを追加する具体的な手順については、「[方法] カスタム リスト定義を作成する」を参照してください。
Views 要素
Views 要素には、リストを作成すると自動的に使えるようになるビューの定義を記述します。
<Views>
...
<View
BaseViewID="2"
Type="HTML"
WebPartZoneID="Main"
DisplayName="$Resources:core,My_Tasks;"
MobileView="True"
MobileDefaultView="True"
SetupPath="pages\viewpage.aspx"
ImageUrl="/_layouts/images/issues.png"
Url="MyItems.aspx"
ReqAuth="TRUE">
<GroupByHeader>
...
<GroupByFooter>
...
<ViewHeader>
...
<ViewBody>
...
<ViewFooter>
...
<PagedRowset>
...
<PagedClientCallbackRowset>
...
<PagedRecurrenceRowset>
...
<RowLimit
Paged="TRUE">100</RowLimit>
<ViewEmpty>
...
<Toolbar Type="Standard" />
<ViewFields>
<FieldRef Name="LinkTitle" />
<FieldRef Name="Status" />
<FieldRef Name="Priority" />
<FieldRef Name="DueDate" />
<FieldRef Name="PercentComplete" />
</ViewFields>
<Query>
<Where>
<Eq>
<FieldRef Name="AssignedTo" />
<Value Type="Integer">
<UserID />
</Value>
</Eq>
</Where>
<OrderBy>
<FieldRef Name="Status" />
<FieldRef Name="Priority" />
</OrderBy>
</Query>
</View>
...
</Views>
各 View 要素には、表示に使う形式の種類 (通常は HTML) と、一意の識別子を記述します。Web パーツ内にビューを表示する際の題名も、View 要素に指定します。Url 属性は、リスト作成時に、ビューを表示する ASPX ページの基底名を指定するために使います。View 要素には、さらにビューを表示する Web パーツのゾーン ID も指定します。
View 要素には、次のような事項を定義する副要素が含まれます。
ビューの各種パーツ (ヘッダー、本体、フッターなど)
Group By セクション
表示する行数やアイテム数の上限
行数の上限に達した場合にアイテムをどう表示するかを定義した行セット
アイテムがない場合、どのように表示するかの定義
リストの上部に表示するツール バー領域
ビュー内に表示するフィールド
ビューの表示内容を制限するクエリ
Toolbar 要素には、リスト ビューのナビゲーション領域に表示するツール バーの種類を定義します。以下のいずれかの値を使用できます。
RelatedTasks - リスト ビューの横のナビゲーション領域に表示される [アクション] セクションで使用
Standard - 通常のビューに使用
Freeform - ホーム ページの概要ビューに使用
Forms 要素
Forms 要素には、個々のリスト アイテムを操作する、フォームへの参照を記述します。
<Forms>
<Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="EditForm" Url="EditForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="NewForm" Url="NewForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
</Forms>
各 Form 要素には、フォームの種類として、DisplayForm、EditForm、NewForm のいずれかを定義します。また、フォームに使う ASPX ページの名前、フォームをページ上に表示する Web パーツのゾーン ID も指定します。
DefaultDescription 要素
DefaultDescription 要素に説明文を設定しておくと、画面上、リスト定義に添えて表示されます。
<DefaultDescription>$Resources:core,camlidT13;</DefaultDescription>
この要素の定義は、Onet.xml ファイルに、現在着目しているリスト定義に対応する List 要素の Description 属性があれば、その値で上書きされます。
重要
この要素の値は、カスタム リスト定義に指定されているものでなければなりません。