Schema.xml ファイルについて
最終更新日: 2011年2月2日
適用対象: SharePoint Foundation 2010
この記事の内容
Schema.xml によるリスト定義
ファイル形式
リスト テンプレート
[作成] ページにオプションとして表示する各リスト定義には Schema.xml ファイルがあります。このファイルは、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES のサブフォルダーに配置されているか、サンドボックス ソリューションの一部として展開されます。Schema.xml ファイルは、リスト定義を使用して作成するリストのビュー、フォーム、ツール バー、特殊フィールドを定義します。
Schema.xml によるリスト定義
Schema.xml ファイルには、次のような事項を記述してリスト定義をカスタマイズできます。
FldTypes.xml で定義された基本フィールドの種類に組み込まれたカスタム フィールドを追加 (カスタム基本フィールドの種類は作成できません)
このリスト定義に基づき作成したリストで使える、ユーザー設定ビューの定義
リスト アイテムを操作する、ユーザー設定フォーム ページの指定
リストに対応して画面に表示される、既定の説明文の設定
注意 |
---|
Microsoft SharePoint Foundation が稼働するサーバーにインストールされた元の Schema.xml ファイルを変更すると、既存のリストが破壊される可能性があります。また、SharePoint Foundation の更新プログラムやサービス パックをインストールしたり、インストールを次の製品バージョンにアップグレードしたりすると、変更が上書きされる場合があります。元のスキーマ ファイルを変更するのではなく、カスタム リスト定義機能を作成してください。詳細については「[方法] カスタム リスト定義を作成する」を参照してください。 |
ファイル形式
List 要素
最上位の List 要素には、リスト定義の内部名および表示名、リストに使うテキストの表示方向、リストの作成先を表すサイト相対 URL を記述します。
注意
このトピックのすべての XML 例で、"$Resources" から始まる文字列は %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\Resources 内の .resx ファイルに定義された定数を示します。
<List
xmlns:ows="Microsoft SharePoint"
Title="Tasks"
FolderCreation="FALSE"
Direction="$Resources:Direction;"
EnableContentTypes="TRUE"
Url="Lists/Tasks"
BaseType="0">
Schema.xml ファイル内の List 要素のほとんどの属性と同様に、サイト相対 URL を指定することは非常に不適切です。その指定は、サイト定義の Onet.xml ファイル内のリスト設定で上書きされるためです。この要素は、オプションで、Microsoft SharePoint を XML 名前空間として指定します。BaseType 属性は、Onet.xml ファイルの BaseTypes 要素内に定義される基本のリストの種類を指定します。VersioningEnabled 属性を使用して、リスト定義を使用して作成するドキュメント ライブラリのバージョン管理を既定で有効にするかどうかを指定します。
MetaData 要素
MetaData 要素は、List 要素内のリスト メタデータをグループ化します。このグループには次の副要素を入れることもできます。
ContentTypes 要素
ContentTypes 要素は、このリスト定義に基づいて作成したリストに関連付ける、コンテンツ タイプを表します。
<MetaData>
<ContentTypes>
<ContentTypeRef ID="0x0108">
<Folder TargetName="Task" />
</ContentTypeRef>
<ContentTypeRef ID="0x0120" />
<ContentTypeRef ID="0x012004" />
</ContentTypes>
Fields 要素
Fields 要素には、リスト定義で必要となる、特殊フィールドの定義を記述します。
<Fields>
<Field
ID="{c3a92d97-2b77-4a25-9698-3ab54874bc6f}"
Name="Predecessors"
Type="LookupMulti"
Mult="TRUE"
Required="FALSE"
DisplayName="$Resources:core,Tasks_Predecessors;"
StaticName="Predecessors"
List="Self"
ShowField="Title"
DisplaceOnUpgrade="TRUE"
SourceID="https://schemas.microsoft.com/sharepoint/v3">
</Field>
<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 要素には、リストを作成すると自動的に使えるようになるビューの定義を記述します。
注意
SharePoint Foundation 2010 では、XSLT を使用してリスト ビューが定義されます。また、ビュー スキーマは下位互換性のために維持されています。XSLT リスト ビューについては、「リスト ビュー」を参照してください。
<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">
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Paged="TRUE">30</RowLimit>
<Toolbar Type="Standard" />
<ViewFields>
<FieldRef Name="LinkTitle"></FieldRef>
<FieldRef Name="Status"></FieldRef>
<FieldRef Name="Priority"></FieldRef>
<FieldRef Name="DueDate"></FieldRef>
<FieldRef Name="PercentComplete"></FieldRef>
</ViewFields>
<ParameterBindings>
<ParameterBinding
Name="NoAnnouncements"
Location="Resource(wss,noXinviewofY_LIST)" />
<ParameterBinding
Name="NoAnnouncementsHowTo"
Location="Resource(wss,noXinviewofY_DEFAULT)" />
</ParameterBindings>
<Query>
<Where>
<Eq>
<FieldRef Name="AssignedTo"></FieldRef>
<Value Type="Integer">
<UserID />
</Value>
</Eq>
</Where>
<OrderBy>
<FieldRef Name="Status"></FieldRef>
<FieldRef Name="Priority"></FieldRef>
</OrderBy>
</Query>
</View>
...
</Views>
各 View 要素には、表示に使う形式の種類 (通常は HTML) と、一意識別子を記述します。Web パーツ内にビューを表示する際の題名も、View 要素に指定します。Url 属性は、リスト作成時に、ビューを表示する ASPX ページの基底名を指定するために使います。View 要素には、さらにビューを表示する Web パーツのゾーン ID も指定します。
SharePoint Foundation では、View 要素に、ビューのさまざまな部分を定義する次のサブ要素が含まれます。
Aggregations 要素は、集計列のフィールド参照を定義します。
XslLink 要素は、ビューのさまざまな部分を定義する XSL ファイルを指定します。たとえば、ヘッダー、本文、フッターです。さらに、Group By セクション、番号が行の制限を超えた場合のアイテムの表示方法を定義する行セット、およびビューの空のセクションも含まれます。
RowLimit 要素は、表示する行数、つまりアイテム数の制限を指定します。
Toolbar 要素は、リストの上部に表示する領域を定義します。
ViewFields 要素は、ビュー内に表示するフィールドを指定します。
ParameterBindings 要素は、XSLT での実装のリソース文字列を指定します。詳細については、「XSLT パラメーターのバインド」を参照してください。
Query 要素は、ビューのフィルターを定義します。
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>
この要素は、現在のリスト定義に対応する List 要素の Description 属性で上書きされます。現在のリスト定義は、Onet.xml ファイル内の構成に指定されています。
重要 |
---|
この要素の値は、カスタム リスト定義に指定されているものでなければなりません。 |
リスト テンプレート
ユーザーは、リストの [テンプレートとして保存] ページでカスタム リスト テンプレートを作成するか、Microsoft.SharePoint.SPList クラスの SaveAsTemplate メソッドを使用するコードを使用してカスタム リスト テンプレートを作成します。保存すると、リスト テンプレートは、サイト コレクション内の最上位サイトのリスト テンプレート ギャラリーに .stp ファイルとして保管されます。リスト テンプレートは、リストの作成元のサイトと同じサイト定義および言語から派生するサイト コレクション内のすべてのサイトで使用できます。リスト テンプレートを別のサイト コレクション内のサイトで使用できるようにするには、その現在のギャラリーからテンプレートをダウンロードし、新しいサイト コレクションのギャラリーにアップロードします。