一:简要介绍某类内容的一组可重用设置,使用内容类型可一致管理元数据,模板以及项目和文档的行为。内容类型在网站级别定义并用于列表和库。站点内容类型是可以独立于任何特定站点集合、站点、列表或文档库而建立的元数据定义。(文/
carysun)
MOSS系统提供的在 %CommonProgramFiles%\Microsoft Shared\Web Server Extensions\12\Template\Features\Ctypes 文件夹中定义,你可以查看该文件夹中的ctypeswss.xml文件包含所有内容类型的定义。
二:系统内容类型- <ContentType ID="0x"
- Name="$Resources:System"
- Group="_Hidden"
- Sealed="TRUE"
- Version="0">
- <FieldRefs>
- <FieldRef ID="{c042a256-787d-4a6f-8a8a-cf6ab767f12d}" Name="ContentType"/>
- </FieldRefs>
- </ContentType>
复制代码在ctypeswss.xml文件中的第一个内容类型为System,所有的内容类型最终都是从System内容类型继承而来的,从下图可以清晰的看出:
附件:
ct1_thumb.jpg 三:内容类型的ID上图右边代表内容类型的ID,每一个内容类型都有一个ID的属性,这个ID是内容类型的唯一标识,每一个内容类型的ID都包括他父内容类型的ID,所以所有内容类型的前两位就是Sytem内容类型的ID,这样我们就可以通过解析内容类型的id来分析内容类型的继承体系。
内容类型的ID有两种命名的方式:
1. 父内容类型ID+两个十六进制数(不包括”00”)
2. 父内容类型id+“00”+十六进制的GUID
这里System内容类型是个特例,他的id是“0x”,其他的内容类型必须遵守上面两种约定的一种。第一种由于只包括两个十六进制数所以他强调的是id的简洁性,第二种包括GUID强调的是该内容类型的唯一性。每一种都有适合的情况。
父内容类型ID+两个十六进制数(不包括”00”)Wss一般使用这种方式来生成默认的内容类型,比如基本的内容类型Item的id是0x01,Item是System的儿子,Document的id是0x0101,folder的id是0x0120,通过解析id你可以看出Document和folder都是Item的儿子,如下图:
附件:
clip_image004_thumb.jpg 附件:
ct2_thumb.jpg 父内容类型id+“00”+十六进制的GUIDWss使用这种命名id的方式创建内容类型主要在以下两种情况
1. 站点内容类型(基于其他类型创建的)
2. 列表类型(将站点类型添加到列表中时,得到的站点类型实例的拷贝)
例如有一个内容类型的id是"0x010100D5C2F139516B419D801AC6C18942554D",通过这个id可以看出以下两点:
1. 是Document内容类型的直接基础而来的。
2. 当Document内容类型被填加到列表时一个列表内容类型被创建,。
当父类型是以下情况时,我们推荐你使用GUID的方式创建内容类型的id
1. 父类型为wss默认的内容类型,比如Document
2. 通过第三方工具开发的内容类型,这种你要确定第三方开发的内容类型和wss默认提供的没有冲突。
内容类型id的长度最大是512bytes即不能超过 1,024 个字符。由于有这个限制我们的id命名可以根据需要灵活的去控制,否则就会出现超出的情况。