了解 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 中定义的基本字段类型的基础上构建的自定义字段(您不能创建自定义基本字段类型。)
为通过该列表定义创建的列表创建自定义视图
指定用于处理列表项的自定义表单页
为在用户界面 (UI) 中显示的列表指定默认描述
警告 |
---|
对最初安装在运行 Microsoft SharePoint Foundation 的服务器上的 Schema.xml 文件进行更改可能会破坏现有列表。在安装 SharePoint Foundation 的更新或 Service Pack 时,或在将安装升级到下一个产品版本时,所做更改可能会被覆盖。请创建自定义列表定义功能而不是修改原始架构文件。有关详细信息,请参阅如何:创建自定义列表定义。 |
文件格式
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 元素包含在创建列表时默认情况下可用的视图定义。
<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)和一个唯一的 ID。在 Web 部件中显示视图时,View 元素还指定该视图的标题。Url 属性用于创建列表,以指定显示视图的 ASPX 页的基本名称。View 还指定显示视图的 Web 部件的 Web 部件区域 ID。
在 SharePoint Foundation 中,View 元素包含用于定义视图各个部分的子元素:
Aggregations 元素定义计算列的字段引用。
XslLink 元素指定一个 XSL 文件,该文件定义视图的各个部分,包括页眉、主体和页脚。它还定义分组依据部分、定义数目超过行限制时如何显示项目的行集,以及视图空白部分。
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 部件的 Web 部件区域 ID。
DefaultDescription 元素
DefaultDescription 元素指定对用户界面中显示的列表定义的描述。
<DefaultDescription>$Resources:core,camlidT13;</DefaultDescription>
此元素被 List 元素的 Description 属性所替代,List 元素与 Onet.xml 的配置中指定的当前列表定义相对应。
重要信息 |
---|
此元素的值必须在自定义列表定义中指定。 |
列表模板
用户可在"另存为模板"页上为列表创建自定义列表模板,也可以通过使用 Microsoft.SharePoint.SPList 类的 SaveAsTemplate 方法的代码创建自定义列表模板。保存时,列表模板作为 .stp 文件存储到网站集中首要网站的列表模板库中。派生自与最初创建列表的网站相同的网站定义和语言的网站集中的所有网站均可使用列表模板。若要使某个列表模板可用于另一个网站集中的网站,请从其当前库中下载该模板,然后将其上载到新网站集的库中。