XML文書管理機能を利用するためには,各種の定義ファイルを作成し,実行時に指定する必要があります。ここでは,定義ファイルの管理および取得方法について説明します。なお,ここでは定義ファイルの管理および取得方法の説明に,C++ クラスライブラリのメソッドを使用します。
(1) DocumentBrokerへのXML定義ファイルの登録
XML定義ファイルの追加/更新/削除コマンド(EDMXmlMap)を実行して,ユーザ作成の定義ファイルから生成するマッピング定義ファイルを,DocumentBrokerサーバの実行環境のXML定義ファイル格納ディレクトリに登録します。登録時には,マッピングセット定義ファイルに,登録したマッピング定義のエントリを追加します。
また,構造指定全文検索を実行する際に不要な構造などを除去するフィルタリング定義ファイルについても,XML定義ファイルの追加/更新/削除コマンド(EDMXmlMap)に指定することによってHAX定義ファイルと関連づけて登録します。
(2) XML文書管理機能を使用するための操作
XML文書管理機能を使用するためには,DocumentBrokerサーバに格納されているXML定義ファイルをDocumentBrokerクライアントの環境に転送する必要があります。転送では,ユーザがDocumentBrokerサーバにあるXML定義ファイルをDocumentBrokerクライアントのXML定義ファイル格納ディレクトリにコピーします。
クライアント環境では次のファイルを同じディレクトリに格納します。
(3) XML定義ファイルのDocumentBrokerクライアント環境への転送
XML文書管理機能を使用するためには,XML定義ファイルを,DocumentBrokerサーバ環境のXML定義ファイル格納ディレクトリから,DocumentBrokerクライアント環境のXML定義ファイル格納ディレクトリに転送する必要があります。
XML文書管理機能の前提プログラムで使用する定義ファイルを次に示します。これらのファイルは,XML定義ファイルの追加/更新/削除コマンド(EDMXmlMap)によって生成された時点で,DocumentBrokerサーバに格納されています。
これらの定義ファイルは,DocumentBrokerサーバの実行環境にあるXML定義ファイル格納ディレクトリに格納されています。格納ディレクトリを次に示します。
$DOCBROKERDIR/etc/xml_files
また,それぞれの定義ファイルの名称は次のようになります。
これらの定義ファイルをDocumentBrokerクライアント環境下のXML定義ファイル格納ディレクトリに転送します。転送先のディレクトリを次に示します。
XML文書管理機能を使用するためには,これらのディレクトリに,DocumentBrokerクライアントの接続先のDocumentBrokerサーバに格納された定義ファイルをすべて転送します。
転送する必要がある定義ファイルを次の図に示します。
図3-15 DocumentBrokerサーバからDocumentBrokerクライアントに転送する必要のある定義ファイルと格納ディレクトリ
この図に示した定義ファイルの格納状態で,文書空間識別子だけを指定したCdbrXmlTranslatorFactory::Initializeメソッドを実行することで,必要な定義ファイルを読み込み,XML文書管理機能を実行できます。
また,フィルタリング定義ファイルについては,GetDmaInfoListメソッド,GetIndexDataメソッド実行時に使用することで,不要なタグの除去などができます。
(4) 定義ファイルのカスタマイズ
DocumentBrokerサーバのXML定義ファイル格納ディレクトリには,XML定義ファイルの追加/更新/削除コマンド(EDMXmlMap)によって生成されたすべてのXML定義ファイルが格納されています。しかし,DocumentBrokerクライアント環境では,これらの定義ファイルのすべてが必要ではない場合があります。「3.18.3(3) XML定義ファイルのDocumentBrokerクライアント環境への転送」で説明した手順でファイルを転送したあと,DocumentBrokerクライアント環境に転送した定義ファイルのうちマッピングセット定義(XMS)ファイルの内容を編集することで,必要な定義ファイルだけを選択して使用できます。
このように,XMSファイルから不要なマッピング定義(XMP)ファイルの定義を削除することで,CdbrXmlTranslatorFactoryクラスのInitializeメソッドの実行時間を短縮できます。また,マッピング定義を保持するためのメモリ領域も削減できます。
また,編集したXMSファイルを別のファイルとして保存できます。この場合は,CdbrXmlTranslatorFactoryクラスのInitializeメソッドの実行時にファイル名を指定することで,カスタマイズしたXMSファイルを基にプロパティマッピング処理を実現できます。
以降,XML定義ファイルのカスタマイズの手順を説明します。ただし,カスタマイズできるのは,XMSファイルだけです。
XMSファイルのサンプルを次に示します。マッピングセット定義の方法は,HiRDB Adapter for XMLの規則に従ってください。詳細については,マニュアル「HiRDB Adapter for XML ユーザーズガイド」を参照してください。
<?xml version="1.0" encoding="Shift_JIS"?>
<mappingset>
<!--EDM name="Map1" map="673d2be0-d1fd-11d0-ab59-08002be29e1d_Map1.xmp" time="20000111184505" CH="U_CH1" DV="U_DV1" -->
<schema name="Map1" map="673d2be0-d1fd-11d0-ab59-08002be29e1d_Map1.xmp"/>
<!--EDM name="Prop2" map="673d2be0-d1fd-11d0-ab59-08002be29e1d_Prop2.xmp" time="20000112120030" CH="ch2" DV="dv2" -->
<schema name="Prop2" map="673d2be0-d1fd-11d0-ab59-08002be29e1d_Prop2.xmp"/>
<!--EDM name="SAMPLE2" map="673d2be0-d1fd-11d0-ab59-08002be29e1d_SAMPLE2.xmp" time="20000116084500" CH="UsrClass_CH" DV="UsrProp_DV" -->
<schema name="SAMPLE2" map="673d2be0-d1fd-11d0-ab59-08002be29e1d_SAMPLE2.xmp"/>
</mappingset>
XMSファイルの定義では,マッピング定義名とマッピング定義ファイルの対応を記述し,それぞれの定義にコメントが付加されています。このファイルを編集する場合,コメントを参照して編集対象の定義を特定します。
XMSファイルの編集内容を次に示します。
「1. 不要なschema定義の削除」について説明します。不要なschema定義は,該当行を削除して,読み込まれないようにします。
XMSファイルのサンプルの2番目の定義(下線の付いた部分)が不要な場合,この部分を削除します。削除した定義を次に示します。
<?xml version="1.0" encoding="Shift_JIS"?>
<mappingset>
<!--EDM name="Map1" map="673d2be0-d1fd-11d0-ab59-08002be29e1d_Map1.xmp" time="20000111184505" CH="U_CH1" DV="U_DV1" -->
<schema name="Map1" map="673d2be0-d1fd-11d0-ab59-08002be29e1d_Map1.xmp"/>
<!--EDM name="SAMPLE2" map="673d2be0-d1fd-11d0-ab59-08002be29e1d_SAMPLE2.xmp" time="20000116084500" CH="UsrClass_CH" DV="UsrProp_DV" -->
<schema name="SAMPLE2" map="673d2be0-d1fd-11d0-ab59-08002be29e1d_SAMPLE2.xmp"/>
</mappingset>
編集済みのXMSファイルを編集元のXMSファイルと同じディレクトリ(XML定義ファイル格納ディレクトリ)に格納することで,編集済みの定義を利用できます。
編集済みのXMSファイルを別ディレクトリに格納する場合は,参照されるXMPファイルおよびマッピング元XMLタグ定義(DCD)ファイルを編集済みのXMSファイルと同じディレクトリに格納してください。これは,schema定義で指定するXMPファイルの指定が相対パスだからです。XMSファイルだけを別ディレクトリに格納した場合は,XMPファイルのパスの変更が必要です。
次に,「2. XMPファイルのパス変更」について説明します。
「1. 不要なschema定義の削除」の手順で作成したXMSファイルを別ディレクトリに格納して,XML定義格納ディレクトリに存在するXMPファイルおよびDCDファイルを使用する場合,XMSファイルのschema定義で指定されているXMPファイルのパスをXML定義ファイル格納ディレクトリに格納されているファイルを指すように修正する必要があります。
ファイルパスは,絶対パスまたはXMSファイルからの相対パスを指定できます。ここでは絶対パスへの変更例を示します。相対パスへの変更も同じ手順で行ってください。
修正した定義を次に示します。
<?xml version="1.0" encoding="Shift_JIS"?>
<mappingset>
<!--EDM name="Map1" map="673d2be0-d1fd-11d0-ab59-08002be29e1d_Map1.xmp" time="20000111184505" CH="U_CH1" DV="U_DV1" -->
<schema name="Map1" map="/opt/HiEDMS/client/etc/xml_files/673d2be0-d1fd-11d0-ab59-08002be29e1d_Map1.xmp"/>
<!--EDM name="SAMPLE2" map="673d2be0-d1fd-11d0-ab59-08002be29e1d_SAMPLE2.xmp" time="20000116084500" CH="UsrClass_CH" DV="UsrProp_DV" -->
<schema name="SAMPLE2" map="/opt/HiEDMS/client/etc/xml_files/673d2be0-d1fd-11d0-ab59-08002be29e1d_SAMPLE2.xmp"/>
</mappingset>
XMPファイルのパスを絶対パスに変更することで,XML定義ファイル格納ディレクトリに格納されたファイルを参照する定義に変更できます。
このXMSファイルを任意のディレクトリに格納して,CdbrXmlTranslatorFactory::Initializeメソッドで指定することで,カスタマイズされたXMSファイルによるマッピング処理ができます。