扩展表单

上次修改时间: 2010年2月8日

适用范围: SharePoint Foundation 2010

本文内容
创建启动器控件并对其进行注册
属性升级和降级
链接管理
合并表单

本主题概述了可用于在 Microsoft SharePoint Foundation 中扩展 Form 内容类型的方法。

第三方开发人员可以创建一个 DLL,该 DLL 提供用于在与 SharePoint Foundation 兼容的 XML 编辑器中打开 Form 内容类型的 XML 文件的启动器控件。Form 内容类型是对 Document 内容类型的扩展,是针对 XML 文件而设计的。

Form 内容类型提供用于处理 XML 文件的以下功能:

  • 属性升级和降级   将 XML 文件中存储的数据提升为 SharePoint Foundation 库中的列,并允许通过这些属性写回到文档。

  • 链接管理   在与表单的模板关联的 XML 文件中保留链接。

  • 合并表单   向客户端应用程序发送要合并的多个 XML 文件。

创建启动器控件并对其进行注册

第三方开发人员可以创建一个 DLL,该 DLL 提供用于在 XML 编辑器中打开 XML 文档的启动器控件。此控件必须提供用于创建、编辑和合并 XML 文件以及用于自定义模板的同一界面,如对 OpenXMLDocuments 控件 控件的描述。此控件必须具有一个 ProgID(例如,SharePoint.OpenXMLDocuments),并且必须在客户端计算机上安装此控件并对其进行注册。

可以对用于 SharePoint Foundation 部署的 了解 DocIcon.xml 文件 文件进行自定义,以便特定文档类型的 ProgID(例如,Word.Document)和文件扩展名映射到启动器控件的 ProgID 和表单库中用于表示文档的图标。

属性升级和降级

SharePoint Foundation 为 XML 表单提供文档属性升级和降级。

SharePoint Foundation 包含内置 XML 文档分析程序,可用于升级和降级 XML 文档中包含的属性。由于表单属于 XML 文档,因此,在需要进行文档属性升级或降级时,SharePoint Foundation 将自动调用内置 XML 分析程序。

备注

属性升级 是指从表单中提取值,并将这些值写入存储表单的库中适当的列。属性降级 是指从存储表单的库中获取列值,并将这些列值写入文档。

有关详细信息,请参阅 XML 文档属性升级和降级

链接管理

利用链接管理,可以在与表单内容类型模板同步的给定表单内容类型上保留分配的表单。链接管理的机制包括:

  • 自动链接管理    在表单与模板同步之后,如果对任何网站、子网站或库进行重命名,则链接将自动与表单内容类型的模板 URL 保持同步。

    备注

    链接管理不会立即发生。将设置一个标志,然后此链接管理将在请求下载文件时发生。

  • 手动重新链接   如果表单最初没有与表单内容类型的模板 URL 同步,则选择自定义页上的"将文档重新链接到此库",即可进行手动重新链接。此操作用于上载的文档或从一个服务器复制到另一个服务器的表单。

这两个机制都要求 Form 内容类型中的 TemplateUrl 列指定表单模板在 XML 表单中所在的位置。这将使 SharePoint Foundation 能够将正确的模板位置降级到分配给此内容类型的 XML 文档中。

如果此信息存储在 XML 表单的处理指令 (PI) 中,请使用 TemplateUrl 列定义中的 PITarget 和 PIAttribute 属性来指定其位置,如以下示例所示。

<FieldRef 
  ID="{4B1BF6C6-4F39-45ac-ACD5-16FE7A214E5E}" 
  Name="TemplateUrl" 
  PITarget="PI_Element" 
  PIAttribute="PI_Attribute"/> 

此外,在查找由 PITarget 和 PIAttribute 属性指定的位置之前,可以在处理指令中指定 SharePoint Foundation 应首先查找的主位置。为此,请添加另一对属性,即 PrimaryPITarget 和 PrimaryPIAttribute。如果这些属性存在,则 SharePoint Foundation 将首先在它们指定的位置查找模板 URL。如果此位置上存在一个值,则分析程序将使用此值并忽略 PITarget 和 PIAttribute 属性,如以下示例所示。

 
<FieldRef 
  ID="{4B1BF6C6-4F39-45ac-ACD5-16FE7A214E5E}" 
  Name="TemplateUrl" 
  PrimaryPITarget="primaryPI_Element" 
  PrimaryPIAttribute="primaryPI_Attribute" 
  PITarget="PI_Element" 
  PIAttribute="PI_Attribute"/> 

如果此信息存储在表单的 XML 内容中,请使用 TemplateUrl 列定义中的 Node 属性来指定其位置,如以下示例所示。

<FieldRef 
  ID="{4B1BF6C6-4F39-45ac-ACD5-16FE7A214E5E}" 
  Name="TemplateUrl" 
  Node="XPath"/> 

有关 SharePoint Foundation 如何使用这些属性来升级和降级文档属性(如模板 URL)的详细信息,请参阅使用内容类型指定 XML 文档属性

合并表单

合并表单提供一个 Form 内容类型,此内容类型包含用于提供具有相同架构的表单的合并视图的机制。

若要为内容类型启用合并,则该内容类型必须包含内部名称为"合并"的合并网站栏。默认情况下,Form 内容类型包含具有适当的内部名称的合并网站栏。通过使用合并列,用户可以选择要合并的表单。

请参阅

概念

XML 文档属性升级和降级