我正在阅读有关内容存储库的信息,目前正在阅读 JCR 规范和在 Apache JackRabbit 上找到的文档。但是,我仍然不明白我将在节点和属性中存储什么。
我知道实际数据在属性中。但我不明白他们的“语义”,他们打算如何使用。有人可以解释节点和属性吗?
它有什么作用?
我正在阅读有关内容存储库的信息,目前正在阅读 JCR 规范和在 Apache JackRabbit 上找到的文档。但是,我仍然不明白我将在节点和属性中存储什么。
我知道实际数据在属性中。但我不明白他们的“语义”,他们打算如何使用。有人可以解释节点和属性吗?
它有什么作用?
考虑 JCR 内容模型的一种好方法就像是“类固醇上的分形文件系统”。
您可以首先在宏树中组织内容,然后将各种内容项视为具有自己结构的微树,独立于一般内容树结构。
在我团队的项目中,我们使用类似于 unix 系统的宏树结构,使用 /content、/var、/etc、/tmp 等文件夹提供熟悉且清晰的结构。
然后,一个节点可能是一个网页,具有图像、评论、内容等子文件夹和标题、描述、标签等属性。将实际内容作为一组有序节点存储在页面节点下的内容文件夹中通常是有意义的,其中每个内容子节点在内容中扮演着特定的角色,如文章标题、文章正文、主图像等。
然后,实际的文本内容将存储在这些内容子节点的字符串属性中,一般元数据可能是元数据子节点的属性。
在我看来,将 JCR 树视为(有点)分形结构会有所帮助,您需要在内容树的宏观和微观视图(包括嵌套的微观视图)之间切换,以验证这些结构中的每一个是否清晰且适用于您的用例. 在此模型中,节点主要用于组织内容,属性存储实际内容。
http://wiki.apache.org/jackrabbit/DavidsModel也提供了关于 JCR 内容模型设计的很好的建议。
节点提供了一种重新组合属性和其他节点的简单方法。将它们视为文件系统中的文件夹,而属性更像是文件(数据)。将 JCR 视为您的文件系统,它应该可以帮助您感受想要使用它的方式。