Atitit file cms api jcr1 jcr2
目录
1.1. 么是JSR-170幸运的是,被称为Java内容仓库(Java Content Repository,JCR)的JSR-170, 1
1.1. 么是JSR-170幸运的是,被称为Java内容仓库(Java Content Repository,JCR)的JSR-170,
试图以独立于具体实现的方式解决这些(以及其它)问题。即,不论底层资源(如,数据库,本地或虚拟文件系统)是什么,API都将相同。在数据存储之上,JCR提供诸如访问粒度控制、版本控制、内容事件、全文检索和过滤等内容服务。由Day Software领导的JSR-170背后的专家组令人印象深刻,包括内容管理系统(CMS)提供商Vignette、Hummingbird Ltd.、Stellent和通用Java驱动解决方案提供商,如BEA Systems、IBM和Oracle。该规范很可能成为内容管理和文档存储方面事实上的标准。
经过几乎2年半的努力,工作最终于2005年6月完成,在javax.jcr包中,API包含了大约50个类(主要是接口和异常)。2006年早些时候,发布了初始1.0版本的参考实现(JackRabbit)。
JSR-170概览Java内容仓库建立在仓库(除了是“用于安全地保存货物的地点”的通常含义之外)概念之上,它提供了几个操作数据的特性。仓库使用“树结构”保存信息,如下图,树由节点和属性组成。圆圈代表节点,方框代表属性。1个节点有且只有1个父亲,有任意数目的孩子(子节点)和任意数目的属性。1个属性有且只有一个父亲(它是节点),它没有子节点,由一个名字和一个或多个值组成。属性值的类型可以是:布尔(Boolean)、日期(Date)、双精(Double),长整(Long),字符串(String)或流(Stream)。只有属性可以被用来存储信息,节点则被用来创建树内部的“路径”。在某种程度上,这棵树类似文件系统的结构,节点是目录,属性是实际的文件。
仓库的功能被划分为几个“兼容性”级别,每个级别提供一组特定的特性:
1.2. 内容仓库有四种基本操作:读、写、查询和删除。
1.3. 仓库的功能被划分为几个“兼容性”级别
,如图1-1所示。每个级别提供一组特定的特性:
1) 级别1:对于所有实现,级别1是必须的,它提供对仓库的读访问,简而言之:对节点和属性的读访问。对属性值的读访问。输出到XML/SAX。支持XPATH语法的查询服务。
2) 级别2:提供写功能,增加和移除节点和属性。对属性值的写操作。从XML/SAX输入数据。
3) 可选级别:这个级别包含一些高级特性,它并不是读写仓库所必需的,但确是真正为JSR-170增色的部分。这个级别包括:
a.事务:它使仓库有可能与JMS或JDBC资源一起工作。
b.版本标定:允许仓库记录节点的不同状态,以备日后检索。规范对于这个主题有相当的篇幅;该特性使得用JSR-170作为后端构建一个CVS的克隆成为可能。
c.事件:亦称观察,它允许仓库内发生的任何活动都会被通知给客户端。
d.锁:可以冻结部分树的功能,它可以有效地返回一个只读的子树。
2. Jcrv1
2.1. Xpath
2.2. JCR v2.0 (JSR-283
·
JCR-SQL2, which expresses a query as a string with syntax similar to SQL, and
·
·
JCR-JQOM (JCR Java Query Object Model), which expresses a query as a tree of Java objects.
·
Java Content Repository API 简介.html