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字段,

PEZvcm1UZW1wbGF0ZXMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vc2hhcmVwb2ludC92My9jb250ZW50dHlwZS9mb3JtcyI+PERpc3BsYXk+TGlzdEZvcm08L0Rpc3BsYXk+PEVkaXQ+TGlzdEZvcm08L0VkaXQ+PE5ldz5MaXN0Rm9ybTwvTmV3PjwvRm9ybVRlbXBsYXRlcz4=

很明显可以看出这就是该内容类型的定义信息。然后再向"第二个内容类型"中添加两栏,一个是新增的站点栏"_Version",一个是原有的站点栏"第二个站点栏"。

该内容类型的Definition变成如下内容,看上去非常正常。

ontentType ID="0x010500AA7D48B0C398CD45943874E5587286B1" Name="第二个内容类型" Group="自定义内容类型" Description="啊啊啊" Version="3">

PEZvcm1UZW1wbGF0ZXMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vc2hhcmVwb2ludC92My9jb250ZW50dHlwZS9mb3JtcyI+PERpc3BsYXk+TGlzdEZvcm08L0Rpc3BsYXk+PEVkaXQ+TGlzdEZvcm08L0VkaXQ+PE5ldz5MaXN0Rm9ybTwvTmV3PjwvRm9ybVRlbXBsYXRlcz4=

但是仔细一看,多了一行自定义站点列的信息。站点列的信息为什么存在这里,那么自带的站点列存在哪里呢? 有待研究。

aggbug.aspx?PostID=2426

转载于:https://www.cnblogs.com/blueox/archive/2007/03/08/668163.html


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部