內容類型ID唯一標識了一個內容類型,他被設計成遞迴結構。內容類型ID蘊含了該內容類型的血統,或者說該內容類型繼承的父內容類型線路。每個內容類型
ID都包含了其父內容類型ID,這樣依次包含父內容類型ID,直到最後,包到System內容類型的ID.通過解析內容類型ID,您可以判斷該內容類型繼
承自哪個內容類型,哪些內容類型與之相關。
WSS使用該資訊來判斷內容類型間的關係,並用於推送操作。
您可以基於下列兩條規則來構建一個有效內容類型ID:
- 父內容類型ID+兩位十六進位數值(這兩位元不能是"00")
- 父內容類型ID+"00"+十六進位的GUID
一個特殊情況是,系統內容類型的內容類型ID為"0x"。系統內容類型是一個密封內容類型,所有其他的內容類型最終都繼承自他。
對於所有的其他內容類型,您必須使用上面兩條規則之一來構建一個有效內容類型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:
- 您基於其他內容類型建立的網站內容類型
- 當我們添加網站內容類型到列表中時建立的列表內容類型
比如,如果有個內容類型的ID為"0x010100D5C2F139516B419D801AC6C18942554D",你應該知道該內容類型是下列內容類型之一:
- 一個網站內容類型,直接繼承自Document內容類型
- 當把Document網站內容類型添加到列表中時建立的一個列表內容類型
我們建議您使用GUID方式來標識那些繼承自不是您建立的內容類型的內容類型。如果父內容類型是下列情況則是以GUID方式:
- 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中獨特的部分用藍色文字標了出來。