日期:2014-05-16  浏览次数:20368 次

内容仓库JSR170规范-第三章 仓库模型

一个内容仓库(repository)由一个或多个工作空间(workspace)组成,每一个工作空间包含一个由item组成的树,一个item是一个节点(node)或者属性(property)。每个节点(node)可能有零个或多个子节点以及零个或多个属性。每个工作空间只有一个没有父节点的根节点。所有其它节点都有父节点。属性必须有一个父节点(a node)并且不能有子结点;它们是树上的叶子节点。实际上在仓库中所有的内容都是以属性值的形式存放的。

?????????????????? 缺图


??? 在上图中,我们可以看到某个工作空间中的根节点以及它的子节点a,b和c,每个节点都有更深一层次的子节点或属性。例如,a节点有两个子结点d和e。节点e有两个属性j和k,其中属性j包含一个图片(一副兔子的图片)属性k包含一个浮点数(6.022 ×1023)。同样的,属性i包含一个布尔值(true),属性g包含一个字符串(“Once upon a time...”)属性h包含一个整数(-25)。

每个在层级结构中的item都可以用一个绝对路径来标示。例如,路径“/”指向根路径,“/a/d/i”指向属性值true。绝对路径总是以“/”开始。

在层级中相对路径明确了节点或属性与其它位置的关系。例如,在上图中节点“/a”的相对路径,到属性布尔值true的路径为“d/i”。Unix风格的路径分隔符“.”和“..”(分别意味着“this”和“parent”)也同样被支持,相对于节点“/a”,包含着值-25的属性相对路径就是“../c/h”。相对路径区别于绝对路径的地方在于它不是以字符“/”开头的。


?