oracle元数据到ods,将元数据存储到Jackrabbit存储库中

小编典典

对于JCR 2.0,上传文件基本上与对于JCR 1.0而言是相同的。但是,JCR 2.0添加了一些有用的附加内置属性定义。

“ nt:file”节点类型旨在表示文件,并且在JCR 2.0中具有两个内置属性定义(这两个属性定义都是在创建节点时由存储库自动创建的):

jcr:已创建(DATE)

jcr:createdBy(STRING)

并定义一个名为“ jcr:content”的子级。该“

jcr:content”节点可以是任何节点类型,但是通常来说,与内容本身有关的所有信息都存储在此子节点上。事实上的标准是使用“

nt:resource”节点类型,该节点类型定义了以下属性:

jcr:data(BINARY)必选

jcr:lastModified(DATE)自动创建

jcr:lastModifiedBy(STRING)自动创建

jcr:mimeType(STRING)受保护吗?

jcr:encoding(STRING)受保护吗?

注意,在JCR 2.0中添加了“ jcr:mimeType”和“ jcr:encoding”。

特别是,“ jcr:mimeType”属性的目的是完全按照您的要求执行-捕获内容的“类型”。但是,“ jcr:mimeType”和“

jcr:encoding”属性定义可以(通过JCR实现)定义为受保护(意味着JCR实现自动设置它们)-如果是这种情况,将不允许您手动进行设置这些属性。我相信Jackrabbit和ModeShape不会将它们视为受保护的对象。

以下是一些代码,显示了如何使用这些内置节点类型将文件上传到JCR 2.0存储库:

// Get an input stream for the file ...

File file = ...

InputStream stream = new BufferedInputStream(new FileInputStream(file));

Node folder = session.getNode("/absolute/path/to/folder/node");

Node file = folder.addNode("Article.pdf","nt:file");

Node content = file.addNode("jcr:content","nt:resource");

Binary binary = session.getValueFactory().createBinary(stream);

content.setProperty("jcr:data",binary);

而且,如果JCR实现未将“ jcr:mimeType”属性视为受保护的对象(即Jackrabbit和ModeShape),则必须手动设置此属性:

content.setProperty("jcr:mimeType","application/pdf");

元数据可以很容易地存储在“ nt:file”和“ jcr:content”节点上,但是现成的“ nt:file”和“

nt:resource”节点类型不允许额外的属性。因此,在添加其他属性之前,首先需要添加一个mixin(或多个mixin),这些mixin具有要存储的各种属性的属性定义。您甚至可以定义允许任何属性的混合。这是一个定义此类混合的CND文件:

[custom:extensible] mixin

- * (undefined) multiple

- * (undefined)

注册此节点类型定义后,可以在节点上使用它:

content.addMixin("custom:extensible");

content.setProperty("anyProp","some value");

content.setProperty("custom:otherProp","some other value");

您还可以定义并使用允许所有Dublin Core元素使用的mixin :

[dc:metadata] mixin

- dc:contributor (STRING)

- dc:coverage (STRING)

- dc:creator (STRING)

- dc:date (DATE)

- dc:description (STRING)

- dc:format (STRING)

- dc:identifier (STRING)

- dc:language (STRING)

- dc:publisher (STRING)

- dc:relation (STRING)

- dc:right (STRING)

- dc:source (STRING)

- dc:subject (STRING)

- dc:title (STRING)

- dc:type (STRING)

所有这些属性都是可选的,并且该mixin不允许使用任何名称或类型的属性。我还没有真正解决“

dc:metadata”混合问题,因为其中一些已经用内置属性表示(例如,“ jcr:createBy”,“ jcr:lastModifiedBy”,“

jcr:created” ,“ jcr:lastModified”,“ jcr:mimeType”),其中一些可能与内容更相关,而其他一些与文件更相关。

您当然可以定义其他更适合您的元数据需求的混合,并在需要时使用继承。但是要谨慎使用继承与mixin-

由于JCR允许一个节点使用多个mixin,因此通常最好将mixin设计为范围狭窄且面向方面的(例如,“ ex:taggable”,“

ex:describable”等)。然后只需根据需要将适当的mixin应用于节点。

(甚至更复杂,甚至有可能定义一个混合,以便在“ nt:file”节点下允许更多子节点,并在其中存储一些元数据。)

Mixins非常棒,为您的JCR内容提供了极大的灵活性和力量。

哦,当您创建了所有想要的节点后,请确保保存会话:

session.save();

2020-12-03

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528030.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 负载命令,通过Linux命令查看系统平均负载的方法

1、Linux系统的平均负载的概念有时候我们会觉得系统响应很慢,但是又找不到原因,这时就要查看平均负载了,看它是否有大量的进程在排队等待。特定时间间隔内运行队列中的平均进程数可以反映系统的繁忙程度,所以我们通常会在自己的网…

linux 进程调度源码分析,Linux调度器源码分析

代码分析根据3.10版本通过对前面的学习我们知道Linux的调度分为两种周期调度 完成周期性算法参数的更新和系统其它实际的检查主调的 真正的调度过程我们现在来看下主调的的代码框架。入口根《调度发生的情况》的学习,我们知道所有的调度最后都会到 schedule 函数中。…

linux修改端口cost值,Linux下通过修改网卡驱动的参数调整Intel网卡的性能

下面列出paramerter中和性能相关的几个以及他们的取值范围和默认值。InterruptThrottleRate范围:100-100000 (0off, 1dynamic)默认:0注:不支持82542, 82543, 82545, 82544芯片RxDescriptors范围:80-256 for 82542 and 82543-based…

Linux跑齿轮命令,【转】glxgears命令

glxgears是一个测试你的Linux是否可以顺利运行2D、3D的测试软件。这个程序弹出一个窗口,里面有三个转动的齿轮,屏幕将显示出每五秒钟转动多少栅,所以这是一个合理的性能测试。窗户是可以缩放的,栅数多少极大程度上依赖于窗口的大小…

log4j日志 linux配置,Log4j 日志详细用法

简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地、日志信息的输出格式Log4j 除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。程序员经常会遇到脱离Java ide环…

linux 改目录前缀,Linux修改终端显示前缀及环境变量

Linux终端前面默认显示一长串,如:这是由PS1环境变量决定的:[[email protected] dir]$ echo $PS1[\u\H \W]\$其中\u代表用户,\H代表主机,\W代表目录可以修改环境变量,有三种方法:1. 直接修改&…

linux qtcreator输入中文,新版QT creator下解决fcitx无法输入中文问题(QTcreatorV4.1.0)...

Preface新版本的QT creatorV4.0.0之后,就QT creator结构本身就发生了很大的变化,许多文件路径以及结构都发生了较大的变化。因此,fcitx的qt5库位置也发生了变化,但是原理还是一样的,都是需要一个动态依赖库&#xff1a…

lisp 读取dwg 统计信息_预制梁厂 BIM 技术和自动化、信息化应用方案

一、使用 Planbar 桥梁模块进行 BIM 模型创建Planbar是德国内梅切克软件工程有限公司专门针对混凝土图纸构件的软件产品,通过三十多年专注于预制构件设计工作所累积的经验,PLANBAR 实现了无与伦比的规划深度。PLANBAR 支持 40 种以上的数据交换形式&…

windows os x linux比较,对比测试:Ubuntu 11.04 vs Win7 vs OS X 10.7

今天我们带来了关于Ubuntu 11.04,Windows 7,Mac OS X 10.7的对比测试,包括图片编辑、视频编码、多任务测试等。本次测试是在同一机子上展开的,这样避免了硬件的因素影响。Ubuntu 11.04,Mac OS X 10.7硬件参数&#xff…

简述osi参考模型各层主要功能_OSI网络模型

OSI七层模型和TCP/IP五层模型 一、OSI参考模型 1、OSI的来源 OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。 ISO为了更好的使网络应用更为普及,推出了OSI参考模型。其含义就是推荐所有…

linux 线程优先级算法,能讲一下在Linux系统中时间片是怎么分配的还有优先级的具体算法是...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼图 1 RT-Linux结构RT -Linux的关键技术是通过软件来模拟硬件的中断控制器。当Linux系统要封锁CPU的中断时时,RT-Linux中的实时子系统会截取到这个请求,把它记录下来,而实际上并不真正封锁硬件中断…

python linux log,linux,python 常用的处理log的命令

一般的log文件都是需要过滤ps:管道符| 管道符前面的输出值grep 过滤查找将是error的log过滤显示grep 221.2.100.138 web.access.loggrep 221.2.100.138 web.access.logless web.access.log |grep "221.2.100.138"统计error行数grep 221.2.100.138 web.access.log |…

vue 图片自适应排列插件_将一堆图片自适应页面排列

最近在开发一个批量展示图片的页面,图片的自适应排列是一个无法避免的问题在付出了许多头发的代价之后,终于完成了图片排列,并封装成组件,最终效果如下一、设计思路为了使结构清晰,我将图片列表处理成了二维数组&#…

linux中vi基础知识,Vim入门基础知识集锦

想学习Vim,但是Vim官网的手册又太大而全,而网上各方资料要么不全面,要么不够基础。在网上搜集各方资料,按照自己的框架整理一份Vim入门基础教程,分享出来。特点是偏向基础,但对入门者来说足够全面&#xff…

60度斜坡怎么计算_坡度怎么计算

展开全部表示坡度最为常用的方法,即两点的高程差与其路程的百e69da5e6ba9062616964757a686964616f31333431356636分比,其计算公式如下:坡度 (高程差/路程)x100%。坡度的表示方法有百分比法、度数法、密位法和分数法四种,其中以百…

linux go missing git command,安装beego出现go: missing Git command

安装beego报下面的错误:go build -ldflags "-linkmode external -extldflags -static" -o go-admin main.gomain.go:5:2: cannot find package "github.com/astaxie/beego" in any of:D:\Go\src\github.com\astaxie\beego (from $GOROOT)F:\xia…

串口 多个activity 安卓_Android-EasySerialPort

Android-EasySerialPort非常好用、非常稳定的Android串口封装久经两年多项目考验,一直很稳定使用说明第一步,在gradle(Project)下添加allprojects {repositories {...maven { url https://www.jitpack.io }}}第二步,导入依赖dependencies {im…

linux bluez语音传输,Linux BlueZ PCM 音频播放器

自己写的简单的实验代码,贴上来看看,有兴趣的话,大家可以交流/******************************************************************************//** …

光纤收发器的原理及应用_光纤收发器的工作原理及使用方法介绍

关于光纤收发器的工作原理以及使用方法这块,在这里飞畅科技的小编做了专门的整理,首先,我们来了解下什么是光纤收发器,光纤收发器是一种将短距离的双绞线电信号和长距离的光信号进行互换的以太网传输媒体转换单元,在很…