继上一篇说明Jackrabbit节点类型定义文件后,下面给出一个实例.
OpenKM是基于Jackrabbit的文档管理应用,将自己定义的节点类型放在其CustomNodes.config文件中.
CustomNodes.config
- <nt = 'http://www.jcp.org/jcr/nt/1.0'>
- <jcr = 'http://www.jcp.org/jcr/1.0'>
- <mix = 'http://www.jcp.org/jcr/mix/1.0'>
- <okm = 'http://www.openkm.org/1.0'>
-
- [mix:accessControlled]
- - okm:authUsersRead (string) multiple mandatory
- - okm:authUsersWrite (string) multiple mandatory
- - okm:authRolesRead (string) multiple mandatory
- - okm:authRolesWrite (string) multiple mandatory
-
- [okm:resource] > nt:resource, mix:versionable
- - okm:size (long) mandatory
- - okm:author (string) mandatory
-
- [okm:document] > nt:hierarchyNode, mix:referenceable, mix:lockable, mix:accessControlled
- - okm:author (string) mandatory
- - okm:name (string)
- - okm:language (string)
- - okm:keywords (string)
- - okm:notification (string) multiple
- + okm:content (okm:resource) primary mandatory
-
- [okm:folder] > nt:folder, mix:referenceable, mix:lockable, mix:accessControlled
- - okm:author (string) mandatory
- - okm:name (string)
- - okm:notification (string) multiple
-
- [okm:config] > nt:hierarchyNode, mix:accessControlled
- - okm:lockTokens (string) = '' multiple autocreated
-
- [okm:query] > nt:hierarchyNode, mix:accessControlled
- + * (nt:unstructured)
接着给出说明:
文件定义了四个名域,其中三个为JCP保留的名域,一个是自己的,名字为okm
文件定义了六个节点类型,其中一个增加了一个mix,其余的为自己的类型
- mix:accessControlled节点类型,该节点类型名字是mix:accessControlled,具有四个多值属性,属性类型都是字符串,而且都是强制性的,名字分别为okm:authUsersRead, okm:authUsersWrite,等
- okm:resource节点类型,继承了nt:resource类型和mix:versionable类型,同时具有两个属性, okm:size和okm:author,而且都是强制行的,类型分别是long和string, 这样OpenKM中的资源就是可以版本化的
- okm:document 节点类型.继承了 nt:hierachyNode, mix:referenceable, mix:lockable, mix:accessControlled节点类型,这样文档就可以被引用,锁定,层次化,和访问控制化. 这里okm:document节点类型依赖刚才定义的节点类型mix:accessControlled. okm:document定义了5个属性和一个子节点okm:content. 注意这个子节点的类型是刚才定义的okm:resource类型,并且是强制性的,和主要的. 注意这里有一个容易混淆的事情: okm:content指的是这个子节点的名字,而okm:resource指的是节点类型的名字,所以注意区分,有的okm:xxxx是指节点名字,而有的是指节点类型名字,这在JCR中非常容易搞混.
分享到:
相关推荐
2. **节点类型**:节点可以有预定义或自定义的类型,这些类型定义了节点可以拥有的属性和子节点。`NodeType`类是处理节点类型的接口。 3. **查询**:JCR支持XPath和SQL-2两种查询语言,让你能够方便地查找仓库中的...
- Node:在JCR中,内容被组织成节点,类似于文件系统的文件和目录。 - Property:节点可以拥有属性,类似于文件的元数据。 - Workspace:工作区是节点和属性的集合,用户可以在其中进行读写操作。 - Session:...
`ImportUUIDBehavior` 枚举常量定义了在导入节点时如何处理 UUID。 8. **版本控制**: Jackrabbit 支持节点的版本历史记录,允许回滚到以前的版本。 在学习 Jackrabbit 时,你需要熟悉这些基本概念以及它们在实际...
4. **操作节点**:通过Session创建、查找、修改或删除节点,节点类似于文件系统中的文件和目录。 5. **保存更改**:所有对存储库的更改都需要通过Session的save()方法进行提交。 6. **查询内容**:使用QueryManager...
8. **节点与属性**:在Jackrabbit中,内容以节点的形式存在,每个节点可以有属性,类似于文件系统中的文件和文件属性。节点可以嵌套,形成复杂的树状结构,以适应各种内容模型。 9. **版本控制**:Jackrabbit 提供...
jackrabbit, 在amqplib上,简单的amqp/rabbitmq作业队列基于 node Jackrabbitnode.js 在不讨厌生命的情况下。producer.js:var jackrabbit = require('jackrabbit');var rabbit = jackrabbit(process
节点有类型,类似于数据库中的表,这些类型定义了节点可以拥有的属性和子节点。 - `Property`:节点上的属性是键值对,它们存储了关于节点的信息。属性可以是单值或多值,支持多种数据类型,包括字符串、日期、数字...
OpenKM 的主配置文件配置在 {JBoss.Home} 目录下面的 OpenKM.cfg 文件里面,里面包含着配置文件 repository.xml 的位置,还包含用户组的配置以及文件上传大小限制等。例如: ``` # Default configuration values # ...
5. 示例代码使用了简单的认证机制,SimpleCredentials类用于提供认证信息,确保了代码在与JackRabbit仓库交互时的安全性。 6. JackRabbit的特性之一是支持JCR标准,这使得它能够和多种内容管理系统兼容。代码展示了...
2. Apache Jackrabbit:作为JCR规范的实现,Apache Jackrabbit提供了全面的功能,包括事务支持、版本控制、查询语言、节点类型定义等。它是一个高性能、可扩展的JCR服务器,可用于构建内容管理系统、文档管理系统、...
Jackrabbit仓库是一个持久化的、基于文件系统的数据存储结构,可以被视为一个内容数据库。 描述中的“博文链接:https://kinglord2010.iteye.com/blog/665530”指向了一篇博客文章,遗憾的是,由于无法直接访问该...
### Jackrabbit 在项目实施中的常见问题与解决方案 #### 一、Jackrabbit简介 Jackrabbit 是一个完全用 Java 编写的 JCR(Java Content Repository)实现,它可以作为一个独立的服务运行,也可以嵌入到更大的应用...
在IT行业中,JCR全称为Java Content Repository(Java内容存储库),它是一个标准,定义了如何在Java应用程序中存储、管理和检索非结构化内容。Jackrabbit是Apache软件基金会的一个开源项目,它是一个实现JCR规范的...
标题中的"jackrabbit-webdav-2.7.1.zip"指的是Apache Jackrabbit的一个特定版本——2.7.1的WebDAV模块的压缩包。Apache Jackrabbit是Java内容存储库(Content Repository)的一个实现,它遵循JCR(Java Content ...
在 Jackrabbit 中,`repository.xml` 文件是配置文件,它定义了仓库的设置,如存储位置、安全性配置等。配置文件的理解和正确设置是使用 Jackrabbit 的基础,你需要了解如何根据项目需求调整这些配置。 `.project` ...
jackrabbit-api-1.5.0.jar
例如,`nt:file`节点类型表示一个文件节点,它可以包含一个名为`jcr:content`的子节点,该子节点用于存储文件的实际内容。 下面是`nt:file`的一个XML定义示例: ```xml <supertype>nt:hierarchyNode ...
在给定的压缩包"jackrabbit-jcr-commons-2.5.0.zip"中,我们可以看到一个名为"streamresource.zip"的子文件,这通常暗示着它包含了与流资源(StreamResource)相关的代码或文档。 StreamResource是Jackrabbit框架中...
jackrabbit-webdav-2.1.0.jar 具体用法可以网上查找