内容存储库中的节点和属性是什么?

时间:2013-07-23 09:16:09

标签: java java-ee jackrabbit jcr content-repository

我正在阅读有关内容存​​储库的内容,我目前正在阅读JCR规范和Apache JackRabbit上的文档。但是,我仍然不明白我将在Node和Properties中存储什么。

我知道实际数据属于属性。但我不明白他们的“语义”,他们打算如何使用。有人可以解释节点和属性吗?

它有什么作用?

2 个答案:

答案 0 :(得分:2)

考虑JCR内容模型的好方法就像是“类固醇分形文件系统”。

您可以从宏树中组织内容开始,将各种内容项视为具有自己结构的微树,与一般内容树结构无关。

在我团队的项目中,我们使用类似于unix系统的宏树结构,其中包含/ content,/ var,/ etc,/ tmp等文件夹,这些文件夹提供了熟悉且清晰的结构。

然后,Node可能是一个网页,其子文件夹包括图像,注释,内容以及标题,描述,标签等属性。将实际内容存储为页面节点下的内容文件夹中的有序节点集通常是有意义的,其中每个内容子节点在内容中扮演特定角色,如文章标题,文章正文,主图像等。 / p>

然后,实际的文本内容将存储在这些内容子节点的String属性中,而常规元数据可能是元数据子节点的属性。

考虑到JCR树作为(某种程度上)分形结构在我看来有帮助,你需要在内容树的宏视图和微视图之间切换(包括嵌套的微观视图),以验证这些结构中的每一个都是清晰的并且适用于你的用例。在此模型中,节点主要用于组织内容,而属性存储实际内容。

http://wiki.apache.org/jackrabbit/DavidsModel也提供了有关JCR内容模型设计的好建议。

答案 1 :(得分:1)

节点提供了一种重新组合属性和其他节点的简单方法。将它们视为文件系统中的文件夹,而属性更像文件(数据)。 将JCR视为您的文件系统,它应该帮助您感受到您希望使用它的方式。