WSS3SDK之:内容类型ID
内容类型ID唯一标识了一个内容类型,他被设计成递归结构。内容类型ID蕴含了该内容类型的血统,或者说该内容类型继承的父内容类型线路。每个内容类型
ID都包含了其父内容类型ID,这样依次包含父内容类型ID,直到最后,包到System内容类型的ID.通过解析内容类型ID,您可以判断该内容类型继
承自哪个内容类型,哪些内容类型与之相关。
WSS使用该信息来判断内容类型间的关系,并用于推送操作。
您可以基于下列两条规则来构建一个有效的内容类型ID:
对于所有的其他内容类型,您必须使用上面两条规则之一来构建一个有效的内容类型ID。
注意:内容类型ID必须在网站集范围内是唯一的。
一般来说,第一种内容类型ID生成技术强调简洁,因为只需要两位十六进制数就可以了;第二种内容类型ID生成技术强调唯一性,因为每个新的内容类型都包含了一个GUID。每种方式都有其对应的应用场景。

使用该规定,您不但可以判断内容类型的继承,还可以看出哪两个内容类型具有相同的祖先。
下图展示了先前讨论的4种内容类型的关系。在各内容类型上,用蓝色标出了内容类型ID不同的部分。

在你使用GUID 的做法唯一标识内容类型之后,您可以使用第一种方法,以找出任何子内容类型。 在内容类型中GUID的使用可以看作是您的内容类型的命名空间。任何在此基础上的子内容类型,可通过两位十六进制数字来标识。因为内容类型ID的最大长度 是有限的,这种做法可以最大限度地增加内容类型的世代数 。
举 例来说,假设您基于默认的WSS内容类型Document创建了一个新的内容类型, myDocument。myDocument的内容类型ID ,您需要以Document内容类型ID开头, 0x0101加上00和一个GUID 来唯一标识myDocument内容类型,以确保Windows SharePoint Services不会在随后添加的其他默认内容类型中使用与之相同的内容类型ID (如果你只加两个十六进制数字,将很有可能) 。基于myDocument产生的任何内容类型的ID,您都可以简单地加两个十六进位数字 。这样可以使内容类型ID的长度到最低限度,从而最大限度增加允许的内容类型“世代数” 。
下图显示了这种情况。每个内容类型ID中独特的部分用蓝色文字标了出来。

WSS使用该信息来判断内容类型间的关系,并用于推送操作。
您可以基于下列两条规则来构建一个有效的内容类型ID:
- 父内容类型ID+两位十六进制数值(这两位数不能是"00")
- 父内容类型ID+"00"+十六进制的GUID
对于所有的其他内容类型,您必须使用上面两条规则之一来构建一个有效的内容类型ID。
注意:内容类型ID必须在网站集范围内是唯一的。
一般来说,第一种内容类型ID生成技术强调简洁,因为只需要两位十六进制数就可以了;第二种内容类型ID生成技术强调唯一性,因为每个新的内容类型都包含了一个GUID。每种方式都有其对应的应用场景。
父内容类型ID+两位16进制数
WSS在其平台内置的内容类型上使用该规范来生成内容类型ID。比如,基础内容类型之一的Item为 0x01,这表示Item内容类型直接继承自系统内容类型。Document内容类型的ID为0x0101,Folder内容类型的ID为0x0102。 通过解析这些内容类型ID,您可以看出Document和Folder都直接继承自Item,间接继承自系统内容类型,如下图所示。使用该规定,您不但可以判断内容类型的继承,还可以看出哪两个内容类型具有相同的祖先。
下图展示了先前讨论的4种内容类型的关系。在各内容类型上,用蓝色标出了内容类型ID不同的部分。
父内容类型ID+"00"+16进制GUID
WSS在下列情况下使用该规则来生成内容类型ID:- 您基于其他内容类型创建的网站内容类型
- 当我们添加网站内容类型到列表中时创建的列表内容类型
- 一个网站内容类型,直接继承自Document内容类型
- 当把Document网站内容类型添加到列表中时创建的一个列表内容类型
- WSS包含的默认内容类型,如Document。
- 第三方开发的内容类型。这样一来,您就可以保证内容类型ID是独一无二的,并不会和将来开发的其他内容类型重复。
在你使用GUID 的做法唯一标识内容类型之后,您可以使用第一种方法,以找出任何子内容类型。 在内容类型中GUID的使用可以看作是您的内容类型的命名空间。任何在此基础上的子内容类型,可通过两位十六进制数字来标识。因为内容类型ID的最大长度 是有限的,这种做法可以最大限度地增加内容类型的世代数 。
内容类型ID的长度
内容类型ID的最大长度为512字节。因为两位十六进制字符可以与每个字节配合使用,这样每个内容类型ID有效的最大长度为1024个字符。举 例来说,假设您基于默认的WSS内容类型Document创建了一个新的内容类型, myDocument。myDocument的内容类型ID ,您需要以Document内容类型ID开头, 0x0101加上00和一个GUID 来唯一标识myDocument内容类型,以确保Windows SharePoint Services不会在随后添加的其他默认内容类型中使用与之相同的内容类型ID (如果你只加两个十六进制数字,将很有可能) 。基于myDocument产生的任何内容类型的ID,您都可以简单地加两个十六进位数字 。这样可以使内容类型ID的长度到最低限度,从而最大限度增加允许的内容类型“世代数” 。
下图显示了这种情况。每个内容类型ID中独特的部分用蓝色文字标了出来。
分类:
SharePoint
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!