uCosminexus DocumentBroker Version 5 リファレンス API

[目次][用語][索引][前へ][次へ]

1.10.9 文書のコンテンツの操作

ここでは,文書のコンテンツの操作について説明します。

なお,バージョン付き文書のコンテンツを操作する場合,デフォルトの設定では,カレントバージョンのコンテンツが対象になります。操作対象のバージョンを変更する場合は,DbjObj#setTargetVersionメソッドを実行して,ターゲットバージョンを変更してください。

文書のコンテンツ管理の考え方については,マニュアル「DocumentBroker Version 5 概説」の「レンディション管理モデル」の説明を参照してください。

<この項の構成>
(1) コンテンツのダウンロード
(2) コンテンツのアップロード

(1) コンテンツのダウンロード

ここでは,文書のコンテンツをローカルパスのファイルにダウンロードして,参照する操作について説明します。

文書のコンテンツは,DbjObj#downloadContentsメソッドでダウンロードします。DbjObj#downloadContentsメソッドの引数に指定するファイルパスには,ローカルパスを指定します。

手順を示します。

  1. DbjObjインターフェースを取得します。
    コンテンツをダウンロードする文書管理オブジェクトのoiidを指定して,DbjDocSpace#createObjConnectionメソッドを実行します。
  2. コンテンツをダウンロードします。
    DbjObj#downloadContentsメソッドを実行します。メソッド実行時には,次の情報を指定します。
    • コンテンツをダウンロードするレンディションのレンディションタイプ
    • ダウンロード先のファイル

マルチレンディション文書の場合,レンディションタイプを指定してダウンロードするコンテンツを特定します。レンディションタイプにnullを指定した場合は,マスタレンディションのコンテンツがダウンロードできます。ダウンロードしたコンテンツは,ダウンロード先ファイルとして指定したパスに,指定したファイル名でコピーされます。指定するファイル名は任意です。文書管理オブジェクトのdbrProp_RetrievalNameプロパティの値と同じにする必要はありません。

コンテンツをダウンロードする例を示します。この例では,マスタレンディションのコンテンツを「test.doc」にダウンロードします。

 
// コンテンツをダウンロードする例
 
  // factory:DbjFactoryインターフェース
  // obj:DbjObjインターフェース
 
// ダウンロードするパスを指定する(ファイル名を含む)
File dwlFile1 = new File( parentdir, "test.doc" );
 
// マスタレンディションのコンテンツを
// dwlFilePathで指定したパスにダウンロードする
DbjContentInfo  continfo1 = obj.downloadContents(
                            null,
                            dwlFile1.getCanonicalPath() );
 

(2) コンテンツのアップロード

ローカルパス上のファイルの内容をアップロードして,文書のコンテンツを更新する操作について説明します。

文書のコンテンツは,DbjObj#uploadContentsメソッドでアップロードします。DbjObj#uploadContentsメソッドの引数に指定するファイルパスには,ローカルパスを指定します。

手順を示します。

  1. 文書のアップロード情報を作成します。
    文書のアップロード情報は,DbjUploadInfoインターフェースで表します。
    DbjUploadInfoインターフェースを使用する場合,次の情報を指定します。
    • アップロードするファイルのファイルパス
    • アップロードするファイルのファイル名
    • 文書に設定するレンディションタイプ
    • レンディションのプロパティ
    • 全文検索インデクス作成用のファイルパス
      全文検索インデクス作成用の指定は,マスタレンディションのコンテンツを更新する場合にだけ有効です。
  2. コンテンツをアップロードします。
    DbjObj#uploadContentsメソッドを実行します。メソッド実行時には,次の情報を指定します。
    • アップロードの対象にするレンディションタイプ
    • 文書のアップロード情報

コンテンツをアップロードする時に,同時に全文検索インデクスを登録することもできます。全文検索インデクスは,次のどちらかの方法で作成できます。

全文検索インデクスの作成方法については,マニュアル「DocumentBroker Version 5 概説」を参照してください。

なお,マルチレンディション文書の場合,全文検索インデクスは,レンディションタイプにnullを指定し,マスタレンディションに対してコンテンツをアップロードする場合にだけ作成されます。サブレンディションのコンテンツをアップロードする場合には,全文検索インデクス作成の指定は無視されます。マルチレンディション文書のコンテンツのアップロードについては,「1.10.11 マルチレンディション文書のレンディションの操作」を参照してください。

文書のアップロード情報に指定するレンディションタイプと,DbjObj#uploadContentsメソッドの引数に指定するレンディションタイプが異なる場合は,コンテンツをアップロードしたレンディションのレンディションタイプが,文書のアップロード情報に指定したレンディションタイプに変更されます。なお,マルチレンディション文書の場合に,マスタレンディションにコンテンツが登録されていないとき,またはDbjObj#uploadContentsメソッドの引数のレンディションタイプにnullを指定したときは,マスタレンディションのコンテンツが更新されます。

コンテンツをアップロードする例を示します。この例では,「tmp.html」というファイルを登録します。文書管理オブジェクトのdbrProp_RetrievalNameプロパティは,「test.html」と設定します。また,登録するコンテンツから全文検索インデクスを作成します。

 
// コンテンツをアップロードする例
 
  // factory:DbjFactoryインターフェース
  // obj:DbjObjインターフェース
 
// アップロードするコンテンツのファイルパスを指定する
File uplFile = new File( parentdir, "tmp.html" );
 
// 文書のアップロード情報を作成する
// (レンディションタイプは拡張子から自動設定するようにする)
DbjUploadInfo upinfo = factory.createUploadInfo(
                uplFile.getCanonicalPath(),
                "test.html",   // retrievalNameプロパティを指定
                null,          // レンディションタイプを指定
                               // (ここでは拡張子(.html)から決定する)
                null,
                DbjDef.INDEXPATH_SAME ); 
                               // 全文検索インデクス作成
 
// マスタレンディションにコンテンツをアップロードする
obj.uploadContents(
                null,          // マスタレンディションが対象
                upinfo );      // 文書のアップロード情報を指定