SharePoint 2007 ContentType 数据存储方式分析
在SharePoint2007 中提供了一个非常强大的东东——ContentType, 似乎整 Moss2007的自定义列表都是构建于ContentType之上的。
为了能够自己实现SharePoint 2007的自定义列表功能,我研究了一下Content Type。具体功能上的描述,可以看董章河老兄的Blog,已经对ContentType 的功能有比较详尽的描述。
这里就不详述了,这里主要介绍的是当我们在站点上添加一个内容类型后,并且配置它,会在数据库中产生什么数据,产生的数据有什么意义。
如图,我添加了一个内容类型名字为"第二个内容类型",他的父级内容类型是"链接"。

然后我看见在SharePoint 的数据库中的ContentTypes表中新增了一条数据如下(同时还在站点的 _cts文件夹下产生一个同名文件夹,用来放内容类型的模板)

中间的几个字段比较有意思,
一个是ContentTypeID 和一般的ID列不同,它居然存储的是二进制的数据,看了一些介绍后,只发现一个好处把这段二进制的编码翻译成16进制后,
表示了和其他内容类型的继承关系。打个比方:内容类型A的ID 是 0x01010D,内容类型B的ID是 0x0101,那么表明A是继承于B。看起来真是奇怪的想法,还是我
智商太低了不能理解。。。
还有一个IsFromFeature 这个字段从意思上来说,就是是否来源于Feature。对于Feature的功能意义我还不是很了解,只知道可以用它来安装站点列,安装Webpart,安装内容类型。
所以对上面这个字段的意义也拿不准,猜想是是否由Feature创建的意思,我是在SPS上手工创建的自然就是False了。
最后分析一下Definition字段,
很明显可以看出这就是该内容类型的定义信息。然后再向"第二个内容类型"中添加两栏,一个是新增的站点栏"_Version",一个是原有的站点栏"第二个站点栏"。
该内容类型的Definition变成如下内容,看上去非常正常。
ontentType ID="0x010500AA7D48B0C398CD45943874E5587286B1" Name="第二个内容类型" Group="自定义内容类型" Description="啊啊啊" Version="3">
但是仔细一看,多了一行自定义站点列的信息。站点列的信息为什么存在这里,那么自带的站点列存在哪里呢? 有待研究。
转载于:https://www.cnblogs.com/blueox/archive/2007/03/08/668163.html
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
