【记录十九】JCR2.0 节点类型
基本主節(jié)點(diǎn)類(lèi)型
所有存儲(chǔ)庫(kù)必須提供基主節(jié)點(diǎn)類(lèi)型,NT:基部,作為一個(gè)內(nèi)置的類(lèi)型。
nt:base
[nt:base] abstract
-
jcr:primaryType (NAME) 強(qiáng)制性的,每個(gè)節(jié)點(diǎn)都必須有的
-
jcr:mixinTypes (NAME) 非強(qiáng)制性的受保護(hù)的多值NAME屬性
nt:base 是抽象的主節(jié)點(diǎn)類(lèi)型,它是所有其他主節(jié)點(diǎn)類(lèi)型的基礎(chǔ)類(lèi)型。它是唯一沒(méi)有超類(lèi)型的主節(jié)點(diǎn)類(lèi)型。
nt:base 通過(guò)屬性 jcr:primaryType和 jcr:mixinTypes公開(kāi)有關(guān)節(jié)點(diǎn)的類(lèi)型信息。
由于每個(gè)其他主要類(lèi)型都必須是nt:base的子類(lèi)型,因此每個(gè)主要節(jié)點(diǎn)類(lèi)型都將繼承這兩個(gè)反映類(lèi)型的屬性定義。
jcr:primaryType 是一個(gè)受保護(hù)的強(qiáng)制性NAME屬性,其中包含其節(jié)點(diǎn)的聲明的主節(jié)點(diǎn)類(lèi)型的名稱(chēng)。存儲(chǔ)庫(kù)必須在節(jié)點(diǎn)的整個(gè)生命周期內(nèi)準(zhǔn)確地保持其值。由于這是強(qiáng)制性的,因此每個(gè)節(jié)點(diǎn)都將具有此屬性。
jcr:mixinTypes 是一個(gè)非強(qiáng)制性的受保護(hù)的多值NAME屬性,該屬性保存其節(jié)點(diǎn)的聲明的mixin節(jié)點(diǎn)類(lèi)型的列表。它不是強(qiáng)制性的,但必須存在于具有一個(gè)或多個(gè)聲明的混合類(lèi)型的任何節(jié)點(diǎn)上。如果存在,則存儲(chǔ)庫(kù)必須在節(jié)點(diǎn)的整個(gè)生命周期內(nèi)準(zhǔn)確地保持其值.
標(biāo)準(zhǔn)應(yīng)用程序節(jié)點(diǎn)類(lèi)型
JCR定義了許多標(biāo)準(zhǔn)的應(yīng)用程序節(jié)點(diǎn)類(lèi)型,旨在支持常見(jiàn)的應(yīng)用程序級(jí)實(shí)體。 存儲(chǔ)庫(kù)可以提供零個(gè)或多個(gè)作為內(nèi)置類(lèi)型。
nt:hierarchyNode
[nt:hierarchyNode] > mix:created abstract
此抽象節(jié)點(diǎn)類(lèi)型充當(dāng)nt:file和nt:folder的超類(lèi)型,并繼承mix:created的項(xiàng)目定義,因此需要該節(jié)點(diǎn)類(lèi)型的存在.
nt:file
[nt:file] > nt:hierarchyNode primaryitem jcr:content
- jcr:content (nt:base) mandatory
此節(jié)點(diǎn)類(lèi)型的節(jié)點(diǎn)可用于表示文件。 該節(jié)點(diǎn)類(lèi)型繼承了nt:hierarchyNode的項(xiàng)目定義,并且需要一個(gè)名為jcr:content的子節(jié)點(diǎn)。 jcr:content節(jié)點(diǎn)用于保存文件的實(shí)際內(nèi)容。 該子節(jié)點(diǎn)是必需的,但不是自動(dòng)創(chuàng)建的。 它的節(jié)點(diǎn)類(lèi)型將取決于應(yīng)用程序,因此必須由用戶(hù)添加。 一種常見(jiàn)的方法是使jcr:content成為nt:resource類(lèi)型的節(jié)點(diǎn)。 jcr:content子節(jié)點(diǎn)也被指定為其父節(jié)點(diǎn)的主要子項(xiàng)。
nt:linkedFile
[nt:linkedFile] > nt:hierarchyNode primaryitem jcr:content
- jcr:content (REFERENCE) mandatory
nt:linkedFile節(jié)點(diǎn)類(lèi)型與nt:file相似,除了內(nèi)容節(jié)點(diǎn)不直接存儲(chǔ)為子節(jié)點(diǎn),而是由REFERENCE屬性指定。 這允許內(nèi)容節(jié)點(diǎn)駐留在工作空間中的任何位置,并被多個(gè)nt:linkedFile節(jié)點(diǎn)引用。 內(nèi)容節(jié)點(diǎn)必須是可引用的。 要支持此節(jié)點(diǎn)類(lèi)型,就需要支持具有參照完整性的可參照節(jié)點(diǎn)
nt:folder
[nt:folder] > nt:hierarchyNode
-
- (nt:hierarchyNode) VERSION
此類(lèi)型的節(jié)點(diǎn)可用于表示文件夾或目錄。 該節(jié)點(diǎn)類(lèi)型繼承了nt:hierarchyNode的項(xiàng)目定義,并增加了具有任意數(shù)量的其他任何名稱(chēng)的nt:hierarchyNode子節(jié)點(diǎn)的功能。 特別是,這意味著它可以具有類(lèi)型為nt:folder,nt:file或nt:linkedFile的子節(jié)點(diǎn)。
nt:resource
[nt:resource] > mix:mimeType, mix:lastModified
primaryitem jcr:data
- jcr:data (BINARY) mandatory
此節(jié)點(diǎn)類(lèi)型可用于表示文件的內(nèi)容。 特別是,nt:file節(jié)點(diǎn)的jcr:content子節(jié)點(diǎn)通常是nt:resource。 請(qǐng)注意,此節(jié)點(diǎn)類(lèi)型的定義指示多重繼承
mix:title
[mix:title] mixin
- jcr:title (STRING) protected? OPV?
- jcr:description (STRING) protected? OPV?
此混合節(jié)點(diǎn)類(lèi)型可用于向節(jié)點(diǎn)添加標(biāo)準(zhǔn)化的標(biāo)題和描述屬性。
mix:created
[mix:created] mixin
- jcr:created (DATE) autocreated protected? OPV?
- jcr:createdBy (STRING) autocreated protected? OPV?
此混合節(jié)點(diǎn)類(lèi)型可用于將標(biāo)準(zhǔn)化的創(chuàng)建信息屬性添加到節(jié)點(diǎn)。 在使這些屬性受到保護(hù)的實(shí)現(xiàn)中,它們的值由存儲(chǔ)庫(kù)控制,該存儲(chǔ)庫(kù)應(yīng)在具有這種mixin類(lèi)型的節(jié)點(diǎn)的初始持久存在時(shí)適當(dāng)?shù)卦O(shè)置它們。 如果將此混入添加到已存在的節(jié)點(diǎn),則這些屬性的語(yǔ)義是特定于實(shí)現(xiàn)的
mix:lastModified
[mix:lastModified] mixin
- jcr:lastModified (DATE) autocreated protected? OPV?
- jcr:lastModifiedBy (STRING) autocreated protected? OPV?
此混合節(jié)點(diǎn)類(lèi)型可用于向節(jié)點(diǎn)提供標(biāo)準(zhǔn)化的修改信息屬性。 在使這些屬性受到保護(hù)的實(shí)現(xiàn)中,它們的值由存儲(chǔ)庫(kù)控制,該存儲(chǔ)庫(kù)應(yīng)在使用此mixin對(duì)節(jié)點(diǎn)的子圖進(jìn)行重大修改時(shí)適當(dāng)?shù)貙?duì)其進(jìn)行設(shè)置。 構(gòu)成重大修改的內(nèi)容將取決于節(jié)點(diǎn)子圖各個(gè)部分的語(yǔ)義,并且取決于實(shí)現(xiàn)。
mix:language
[mix:language] mixin
- jcr:language (STRING) protected? OPV?
此混合節(jié)點(diǎn)類(lèi)型可用于提供標(biāo)準(zhǔn)化的屬性,該屬性指定用于表達(dá)節(jié)點(diǎn)內(nèi)容的自然語(yǔ)言。 jcr:language屬性的值應(yīng)該是RFC 46465中定義的語(yǔ)言代碼。示例包括“ en”(英語(yǔ)),“ en-US”(美國(guó)英語(yǔ)),“ de”(德語(yǔ))和“ de-CH” ”(瑞士德語(yǔ))。
mix:mimeType
[mix:mimeType] mixin
- jcr:mimeType (STRING) protected? OPV?
- jcr:encoding (STRING) protected? OPV?
此混合節(jié)點(diǎn)類(lèi)型可用于為節(jié)點(diǎn)提供標(biāo)準(zhǔn)化的模仿類(lèi)型和編碼屬性。
如果此類(lèi)型的節(jié)點(diǎn)的主項(xiàng)目是單值BINARY屬性,則jcr:mimeType屬性指示適用于該屬性?xún)?nèi)容的媒體類(lèi)型6,如果該媒體類(lèi)型是適用文本編碼的媒體類(lèi)型,則 jcr:encoding屬性指示使用的字符set7。
如果此類(lèi)型的節(jié)點(diǎn)不滿(mǎn)足上述前提條件,則jcr:mimeType和jcr:encoding屬性的解釋取決于實(shí)現(xiàn)。
nt:address
[nt:address]
- jcr:protocol (STRING)
- jcr:host (STRING)
- jcr:port (STRING)
- jcr:repository (STRING)
- jcr:workspace (STRING)
- jcr:path (PATH)
- jcr:id (WEAKREFERENCE)
此節(jié)點(diǎn)類(lèi)型不僅可以用于表示特定工作空間中的JCR項(xiàng)的位置,還可以用于表示所有JCR存儲(chǔ)庫(kù)中所有工作空間中的JCR項(xiàng)的位置。
jcr:protocol屬性存儲(chǔ)一個(gè)字符串,該字符串包含用于訪(fǎng)問(wèn)目標(biāo)系統(tǒng)信息庫(kù)的協(xié)議。
jcr:host屬性存儲(chǔ)一個(gè)字符串,其中包含要通過(guò)其訪(fǎng)問(wèn)存儲(chǔ)庫(kù)的系統(tǒng)的主機(jī)名。
jcr:port屬性存儲(chǔ)一個(gè)字符串,其中包含用于訪(fǎng)問(wèn)目標(biāo)系統(tǒng)信息庫(kù)的端口號(hào)。
這些屬性的語(yǔ)義未定義,但假定為應(yīng)用程序已知。屬性的名稱(chēng)和描述不是規(guī)范性的,并且存儲(chǔ)庫(kù)不對(duì)屬性執(zhí)行任何特定的語(yǔ)義解釋。
jcr:repository屬性存儲(chǔ)一個(gè)字符串,其中包含目標(biāo)存儲(chǔ)庫(kù)的名稱(chēng)。
jcr:workspace屬性存儲(chǔ)工作區(qū)的名稱(chēng)。
jcr:path屬性存儲(chǔ)項(xiàng)目的路徑。
jcr:id屬性存儲(chǔ)對(duì)節(jié)點(diǎn)的弱引用。
在大多數(shù)情況下,將使用jcr:path或jcr:id屬性,但不能同時(shí)使用兩者,因?yàn)樗鼈兛赡苤赶虿煌墓?jié)點(diǎn)。如果缺少jcr:path和jcr:id以外的任何其他屬性,則可以將該地址解釋為相對(duì)于當(dāng)前容器的地址,與丟失的說(shuō)明符處于同一級(jí)別。例如,如果未指定存儲(chǔ)庫(kù),那么該地址可以解釋為引用當(dāng)前存儲(chǔ)庫(kù)中的工作空間和路徑或ID。
實(shí)體標(biāo)簽
對(duì)于應(yīng)用程序來(lái)說(shuō),能夠快速查找自上次檢查后BINARY屬性的值是否已更改通常很有用。 這在確定是否使包含BINARY值副本的緩存無(wú)效時(shí)特別有用。
mix:etag mixin類(lèi)型為BINARY屬性定義標(biāo)準(zhǔn)化的身份驗(yàn)證器,類(lèi)似于HTTP / 1.18中使用的實(shí)體標(biāo)簽。
mix:etag
[mix:etag] mixin
- jcr:etag (STRING) protected autocreated
jcr:etag屬性是一個(gè)不透明字符串,其語(yǔ)法與在HTTP / 1.1中為實(shí)體標(biāo)簽定義的語(yǔ)法相同。 語(yǔ)義上,jcr:etag與HTTP / 1.1強(qiáng)實(shí)體標(biāo)簽相當(dāng)。
在創(chuàng)建mix:etag節(jié)點(diǎn)N或?qū)ix:etag分配給N時(shí),存儲(chǔ)庫(kù)必須創(chuàng)建具有實(shí)現(xiàn)確定值的jcr:etag屬性。
如果對(duì)N進(jìn)行以下任何更改,則jcr:etag屬性的值必須立即更改:
將BINARY屬性添加到N。
從N中刪除了BINARY屬性。
N的現(xiàn)有BINARY屬性的值更改。
非結(jié)構(gòu)化內(nèi)容
可以通過(guò)支持自由格式的節(jié)點(diǎn)類(lèi)型來(lái)提供對(duì)非結(jié)構(gòu)化內(nèi)容的支持:nt:unstructured。 支持此節(jié)點(diǎn)類(lèi)型需要支持UNDEFINED屬性類(lèi)型值。
nt:unstructured
[nt:unstructured]
orderable
-
- (UNDEFINED) multiple
-
- (UNDEFINED)
-
- (nt:base) = nt:unstructured sns VERSION
此節(jié)點(diǎn)類(lèi)型用于存儲(chǔ)非結(jié)構(gòu)化內(nèi)容。 它允許使用任意名稱(chēng)的任意數(shù)量的子節(jié)點(diǎn)或?qū)傩浴?它還允許多個(gè)具有相同名稱(chēng)的節(jié)點(diǎn)以及具有任何名稱(chēng)的多值和單值屬性。 此節(jié)點(diǎn)類(lèi)型還支持客戶(hù)端可訂購(gòu)的子節(jié)點(diǎn)。
待持續(xù)更新中。。。。。。。
總結(jié)
以上是生活随笔為你收集整理的【记录十九】JCR2.0 节点类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JavaScript 教程「6」:数组
- 下一篇: java十进制转化为二进制