快速业务通道

Java内容仓库规范及产品介绍 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
一个主节点类型,该类型定义了名称、类型、属性以及该节点必 须要有和允许有的子节点。每个节点都有一个名称为jcr:primaryType的属性记录它的主节点类型。

除了主节点类型之外,每个节点可以有一个或者多个混合类型,来为特殊节点定义主类型约束之外的 特性。当一个节点被指派了一个混合类型之后,它就需要有一个名称为:jcr:mixinTypes的多值属性来 记录它的混合节点类型。

满足级别一的实现需要提供获取节点的节点类型的接口及获取仓库中可访问的节点类型定义的接口; 满足级别二的实现需要提供为节点指定主节点类型和混合类型的接口。

规范并没有提供定义、创建、管理主节点类型和混合类型的相关接口,但是提供了一组预定义的节点 类型。

3.同名兄弟节点

节点是否允许含有同名兄弟节点是通过父节点的节点类型定义来限定的,虽然规范提供了一组必须要 实现的节点类型,但是这些类型中没有允许含有同名兄弟节点的定义,因而可以提供一个不支持同名兄弟 节点的内容仓库实现。

对于支持同名兄弟节点的仓库实现来说,可以通过Node.getNodes(String namePattern)方法来获取当 前节点的子节点中满足namePattern模式的所有节点的迭代器。对于同名节点组中的某个节点,可以通过 在路径中用类似数组的语法进行定位。例如,路径/a/b[2]/c[3]可以定位到根节点下a子节点的第二个名 字为b的子节点下的第三名字为c的子节点。注意,索引是从一开始的,而不是从零开始。这种方式来源于 xpath,但与xpath语法不同的是,内容仓库中的路径不需要显示指定索引值“1”。例如:/a /b/c和/a [1]/b[1]/c[1]是等价的。

索引值取决于Node.getNodes()方法返回的迭代器中子节点的顺序。例如:通过getNodes方法返回如下 顺序的子节点[A, B, C, A, D],这中情况下,A[1]表示列表中的第一个节点,A[2]表示列表中的第四个 节点。

注意:属性不能含有同名兄弟节点。

4.排序子节点

和同名兄弟节点一样,排序子节点也是可选的实现内容,这取决于仓库实现的节点类型集合。对于支 持排序子节点的实现来说,子节点的顺序是和 Node.getNodes()方法返回的迭代器中的顺序相对应的,我 们可以通过Node.orderBefore方法来改变顺序。当向一个支持排序子节点的节点增加新子节点的时候,新 子节点会被增加到子节点列表的最后。对于一个即支持排序子节点又支持同名兄弟节点的实现来说,我们 可以像排序其它子节点一样来对同名兄弟节点进行排序。例如:对于如下的子节点顺序[A, B, C, A, D] ,调用orderBefore("A[2]","A[1]")方法会将A[2]子节点移动到A[1]子节点的前面,结果会是这样:[A, A, B, C, D] 。结果中的第一个A之前在C之后,第二个A之前在列表的最前面;同时他们的索引值也发生 了改变,之前的A[1]现在是A[2],而之前的A[2]现在是 A[1]。

对于不支持排序子节点的实现来说,应用程序不应该依赖于Node.getNodes()方法返回结果中的子节点 的顺序,因为这个顺序是随时可变的,除非在调用read方法或者整个session生命周期中同名兄弟子节点 保持他们之间的相对顺序。

Java内容仓库规范及产品介绍(4)

时间:2011-11-11 博客园 镜涛

5.属性

属性类型有STRING、、BINARY、DATE、LONG 、DOUBLE 、BOOLEAN、NAME、PATH、REFERENCE几种,可 以用处理java中相关类型一样的方式处理他们。

属性节点父节点的类型决定了属性是否能够支持多值属性,这同样是可选的。对于多值属性来说,可 以通过Property.getValues()方法来获得属性值对象的数组。多值属性中所有的值都是同类型并且是排序 好的。如果我们将多值属性中的某个属性值设置为null,那么相当于从属性值数组中删除了这个值,同时 属性值数组会自动压缩。对于多值属性调用Proper

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号