日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/9/27 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

總結

以上是生活随笔為你收集整理的oracle元数据到ods,将元数据存储到Jackrabbit存储库中的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。