MOSS for Developers - 第 9 部分:内容类型
从开发者的角度提供对内容类型的概述。此内容是 www.myrampup.com 的 MOSS 内容的第 9 部分。
引言
内容类型是 Windows SharePoint Services 3.0 中提供的功能和服务的核心概念,旨在帮助用户以更有意义的方式组织其 SharePoint 内容。内容类型是您希望应用于特定内容类别的一组可重用设置。内容类型使您能够以集中、可重用的方式管理文档或项目类型的元数据和行为。
例如,考虑以下两种文档类型:软件规范和法律合同。您可能希望将这两种类型的文档存储在同一个文档库中,这是合理的。然而,您希望为每种文档类型收集和存储的元数据将大不相同。此外,您最有可能希望为这两种类型的文档分配非常不同的工作流。
您需要安装 Windows SharePoint Services 3.0 SDK。
内容类型封装数据要求
内容类型使您能够在同一个文档库或列表中存储多种不同类型的内容。在前面的示例中,您可以定义两个内容类型,分别命名为“Specification”和“Contract”。每个内容类型将包括不同的列,用于收集和存储项目元数据,以及分配给它们的不同工作流。然而,这两种内容类型的项目可以存储在同一个文档库中。
您可以将内容类型视为 Windows SharePoint Services 2.0 列表的改进和扩展,该列表默认定义一个单一的数据结构或架构,列表中的所有项目都必须遵守该架构。在 Windows SharePoint Services 2.0 中,项目的架构与其位置密不可分。当您定义列表或文档库时,您也为该列表或库定义了列,从而有效地为存储在该位置的所有项目定义了数据架构。每一列都代表您正在跟踪的列表中所有项目的附加数据。
内容类型是封装数据架构并使其独立于 SharePoint 列表位置的一种方式。在 Windows SharePoint Services 3.0 中,您可以在同一列表或文档库上提供多种形式的内容类型(多个架构)。“Specification”内容类型可能包含以下元数据列:“Project Lead”、“Developer”和“Test Lead”。而“Contract”内容类型可能包含以下列:“Lawyer”和“Signer”。然而,规范和合同可以并排存在于同一个列表或文档库中。
内容类型设置
您可以通过使用内容类型将其他设置(例如工作流或自定义属性)分配给您的项目来进一步扩展内容类型功能。
内容类型可以包含以下信息:
- 您希望分配给此类型的元数据或属性。这些由您在添加内容类型时添加到列表或文档库的列表示。
- 此内容类型使用的自定义“新建”、“编辑”和“显示”窗体。
- 可用于此内容类型项目的 Worfklows。这些可以定义为基于选定的事件或条件自动启动,或者通过用户选择来启动。
- 对于文档内容类型,用于基于此类型文档的文档模板。
- 与此内容类型相关的自定义解决方案所需的任何信息。您可以将此信息存储在内容类型中,作为一张或多张 XML 文档。
内容类型实现内容标准化
由于内容类型可以独立于任何特定的列表或文档库进行定义,因此您可以使某个内容类型在多个 SharePoint 网站上的列表可用。这使您可以集中定义和管理您在网站集 (site collection) 中存储的内容类型。例如,您可以使用“Specification”内容类型来确保所有软件规范都跟踪相同的元数据,即使这些规范分布在多个网站中。
内容类型与文件格式无关
内容类型与文件格式无关。对于文档库,您可以指定一个文档模板;当用户请求此内容类型的新文档时,Windows SharePoint Services 会根据模板创建一个新文档。但是,用户仍然可以上传基于不同模板甚至完全不同文件类型的文档。
例如,假设您创建一个内容类型来表示商业计划。此内容类型可以应用于任何文件格式。您可能有以下内容:
- 包含背景信息的 Microsoft Office Word 文档
- 包含财务计划的 Microsoft Office Excel 文档
- 用于风险投资推介的 Microsoft Office PowerPoint 演示文稿
- 演示的 Windows Media 文件
- 包含指定元数据的 SharePoint 列表项
所有这些文件都可以分配“Business Plan”内容类型。
您还可以将内容类型分配给根本没有文件的 SharePoint 项目,例如列表项或文件夹。为文档创建的内容类型只能应用于文档库;同样,为列表项创建的内容类型也只能应用于列表。为文件夹创建的内容类型可以应用于文档库或列表。
网站和列表内容类型
您在网站级别创建内容类型。此网站内容类型充当独立于任何特定列表或库的模板。然后,该网站内容类型在任何子网站上都可用。例如,如果您在网站集的根网站上创建了一个网站内容类型,那么该网站内容类型将在该网站集中的任何网站上可用,以便您可以将其添加到该网站集中的任何列表中。
内容类型继承
当您创建网站内容类型时,它将在任何子网站上可用。此时,该网站内容类型可用于添加到网站内的列表中,但尚未实际添加到任何特定的网站列表。
注意:要在网站上创建或管理网站内容类型,您必须拥有该网站的“Web Designer”访问权限。具体来说,您必须在网站内容类型所在的网站上拥有“Manage Lists”和“Add and Customize Pages”访问权限。要将内容类型添加到列表,您必须对该列表拥有“List Administrator”权限。
当您将网站内容类型添加到列表时,Windows SharePoint Services 3.0 会将网站内容类型的一个本地副本复制到列表本身。此本地实例称为列表内容类型,仅适用于复制到的列表。
由于 Windows SharePoint Services 将网站内容类型的副本存储为列表内容类型,添加到该网站内容类型的每个列表上,因此您可以对列表内容类型进行更改,而不会影响网站内容类型本身。对列表内容类型的更改仅限于该列表,不会影响网站内容类型或从同一网站内容类型继承的任何其他内容类型。
下图显示了这种关系。为某个网站定义了两个网站内容类型:“Memo”和“Spec”。当“Spec”内容类型添加到子网站列表的列表中时,Windows SharePoint Services 会将该网站内容类型的一个实例本地复制到列表中。
“Memo”网站内容类型也可用于添加到子网站上的列表。但是,此内容类型尚未添加到列表中,因此列表中不存在其副本。