上次修改时间: 2010年2月10日
适用范围: SharePoint Foundation 2010
对于能够确定文档内容类型并因此访问内容类型定义的内置 XML 分析程序,文档本身必须包含作为文档属性的内容类型。分析程序查找 XML 文档中的特殊处理指令,以标识文档的内容类型。可以包括按内容类型和/或文档模板标识文档内容类型的处理指令。
分析程序如何确定文档内容类型
当用户将 XML 文档上载到文档库时,SharePoint Foundation 将调用内置 XML 分析程序。分析程序必须首先确定文档的内容类型(如果有)才能提升文档属性。
分析程序首先在表示文档库中的内容类型 ID 列的文档库架构中查找 Field 元素。分析程序在应存储内容类型 ID 的文档中检查位置的 Field 元素。然后,分析程序确定内容类型 ID 是否确实存储在文档的此位置中。如果未在该位置指定任何内容类型 ID,则分析程序会将默认的内容类型分配给文档。然后,分析程序上载该文档并相应地提升任何文档属性。
如果文档在指定位置确实包含内容类型 ID,则分析程序会确定具有该 ID 的内容类型是否也与文档库关联。如果是,则分析程序将上载该文档并相应地提升任何文档属性。
如果分析程序找不到完全匹配项,则它会检查文档库中内容类型的 ID,以确定一个或多个文档类型是否为文档内容类型的子级。如果是,则分析程序会将最接近的子内容类型分配给文档。然后,分析程序上载该文档并相应地提升任何文档属性。
备注
分析程序将检查为文档内容类型子级的内容类型列表,因为多数情况下,会为文档分配一个网站内容类型,并且匹配的列表内容类型为网站内容类型的子级。
如果分析程序根本未找到任何内容类型匹配项,则在列存在的情况下,它将在表示文档库中文档模板列的文档库架构中查找 Field 元素。如果文档库不包含文档模板列,则分析程序在应存储文档模板的文档中检查位置的 Field 元素。然后,分析程序确定文档模板是否存储在文档的此位置中。
如果文档确实包含一个文档模板,则分析程序会将该模板与文档库的每个内容类型中指定的文档模板相比较。如果分析程序找到具有与该文档相同的文档模板的内容类型,则分析程序会将该内容类型分配给该文档。如果存在具有与该文档相同的文档模板的多个内容类型,则分析程序仅分配其找到的第一个此类内容类型。然后,分析程序上载该文档并相应地提升任何文档属性。
最后,如果分析程序无法找到内容类型匹配项,则分析程序会将默认内容类型分配给文档。然后,分析程序上载该文档并相应地提升任何文档属性。
下面的流程图演示分析程序用于确定文档的内容类型所执行的检查。
有关分析程序如何提升和降级特定文档属性的详细信息,请参阅使用内容类型指定 XML 文档属性。
有关分析程序操作
分析程序查找文档库的内容类型和文档模板列,以确定在 XML 文件中查找这些匹配文档属性的位置。因此,为了使提升和降级能正常工作,给定文档库上的所有内容类必须包含内容类型和文档模板列定义,这些定义指定与文档库列相同的这些文档属性的位置。否则,分析程序在文档中的错误位置查找这些属性。
有关按内容类型 ID 或文档模板指定内容类型的详细信息,请参阅指定文档内容类型以进行 XML 分析。