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