CdbrXmlTranslator::GetDmaInfoListメソッド
機能
DMA情報リストの取得
形式
DmaBoolean GetDmaInfoList (
const pDmaString_T pXmlFilePath,
DmaInteger32 lParseLevel,
const pDmaString_T pMappingId,
DmaInteger32 lIndexType,
const pDmaString_T pFilterFilePath,
const pDmaString_T pIndexFilePath,
SDBR_DMAINFOLIST** ppDmaInfoList,
ppDmaString_T ppParseMessage)
// DMA情報リスト構造体
struct SDBR_DMAINFOLIST {
DmaInteger32 lCount; //DMAオブジェクトの情報の個数
SDBR_DMAINFO* pItem; //DMAオブジェクトの情報
};
// DMAオブジェクト生成用の構造体
struct SDBR_DMAINFO {
DmaId ClassId; //クラス識別子
SDBR_PROPLIST PropList; //プロパティ一覧
};
// プロパティ構造体
struct SDBR_PROP {
DmaId PropId; // プロパティ識別子
DmaInteger32 lType; // データ型
DmaInteger32 lCardinality; // 基本単位
DmaInteger32 lCount; // 要素数
union { // プロパティの値
pDmaBoolean pbBoolean; // Boolean型
pDmaInteger32 plInteger32; // Integer32型
pDmaId pId; // ID型
pDmapv ppObject; // Object型
ppDmaString_T ppString; // String型
} uniValue;
};
// プロパティリスト構造体
struct SDBR_PROPLIST {
DmaInteger32 lCount;
SDBR_PROP* pItem;
};
詳細
指定されたXMLファイルの構文解析を行い,マッピング定義情報に従ってXMLファイルからプロパティを抽出してDMA情報リスト(文書オブジェクトを作成するときのプロパティの初期値のリスト)を作成するメソッドです。また,オプションで,全文検索インデクス作成用のデータをファイルに出力します。ただし,全文検索インデクス作成用データの出力にはPreprocessing Library for Text Searchが必要です。
CdbrXmlTranslatorFactory::CreateTranslatorメソッドでCdbrXmlTranslatorオブジェクトを生成していない場合や,CdbrXmlTranslatorオブジェクト生成元のCdbrXmlTranslatorFactoryオブジェクトがすでに破棄されている場合,オブジェクトが未初期化状態であるとして,このメソッドはエラーになります。
引数
pXmlFilePath(入力)
入力するXMLファイルのパス名を,"file:///"で始まるURL形式で指定します。NULLを指定するとエラーになります。
lParseLevel(入力)
構文解析のレベルを指定します。次の値のどれかを指定してください。
pMappingId(入力)
マッピング定義名を指定します。NULLを指定するとエラーになります。
lIndexType(入力)
作成対象となる全文検索インデクスの種別を指定します。次の値のどれかを指定してください。
なお,DBR_INDEXTYPE_NOTHINGを指定した場合,引数pFilterFilePathおよびpIndexFilePathの値は無視されます。
また,Preprocessing Library for Text Searchを利用できない場合に,DBR_INDEXTYPE_NOTHING以外の値を指定するとエラーになります。
pFilterFilePath(入力)
全文検索インデクス作成用データの生成の際に使用するフィルタリング定義ファイルを指定します。引数lIndexTypeにDBR_INDEXTYPE_NOTHINGを指定した場合,pFilterFileNameの値は無視されます。
ファイルは,UNIXの場合は<インストールディレクトリ>/client/etc/xml_files,Windowsの場合は<DocumentBroker Development Kitのインストールディレクトリ>¥etc¥xml_filesを起点とした相対パス名か,"file:///"で始まる絶対パス名で指定します。また,NULLを指定した場合,UNIXの場合は<インストールディレクトリ>/client/etc/xml_files,Windowsの場合は<DocumentBroker Development Kitのインストールディレクトリ>¥etc¥xml_filesにあるデフォルトのファイル"<文書空間識別子>_<マッピング定義名>.tfd"を使用して処理を実行します。なお,NULLを指定した場合でデフォルトのファイルが存在しない場合,フィルタリング定義ファイルを使用しないで処理を実行します。
pIndexFilePath(入力)
全文検索インデクス作成用データを出力するファイルのパス名を,"file:///"で始まるURL形式で指定します。引数lIndexTypeにDBR_INDEXTYPE_NOTHINGを指定した場合,pIndexFilePathの値は無視されます。それ以外の場合,NULLを指定するとエラーになります。
ppDmaInfoList(出力)
抽出したプロパティを格納するDMA情報リスト構造体である,SDBR_DMAINFOLIST構造体へのポインタが設定されます。DMA情報リスト構造体へのポインタを格納する領域を指定してください。NULLを指定するとエラーになります。それ以外のエラーの場合NULLが格納されます。
**ppDmaInfoListがポイントするメモリは,ライブラリが新たに確保したものです。このメモリは,ユーザプログラムでdbrDelete関数を使用して解放してください。
SDBR_DMAINFOLIST構造体およびSDBR_DMAINFO構造体に設定される内容については,「付録C.1(4) SDBR_DMAINFOLIST構造体(DMA情報リスト構造体)」および「付録C.1(3) SDBR_DMAINFO構造体(DMAオブジェクト生成用の構造体)」を参照してください。
また,プロパティ情報が設定されるSDBR_PROPLIST構造体およびSDBR_PROP構造体については,「付録C.1(14) SDBR_PROPLIST構造体(プロパティリスト構造体)」および「付録C.1(12) SDBR_PROP構造体(プロパティ構造体)」を参照してください。
なお,SDBR_DMAINFOLIST構造体のメンバpItemに設定されるDMAオブジェクト生成用構造体の配列の要素数は,マッピング定義情報で指定したクラスの数と同じです。
また,ユーザがマッピング定義として二つのクラスを指定した場合,1番目の要素にはdmaClass_ConfigurationHistoryクラスまたはそのサブクラスの情報が,2番目の要素にはdmaClass_DocVersionクラスまたはそのサブクラスの情報が,それぞれ設定されます。
ppParseMessage(出力)
XMLファイルの構文解析などで発生したエラーやワーニング(警告)の詳細情報が設定されます。詳細情報を格納する領域のアドレスを指定してください。NULLを指定するとエラーになります。なお,返却する詳細情報がない場合はNULLが設定されます。ppParseMessageの領域は,dbrDelete関数を使ってユーザプログラムで解放してください。
NULLが設定されるかどうかはこのメソッドの戻り値に依存しません。メソッドが正常終了した場合でもNULL以外の値が設定される場合があり,また,異常終了した場合でもNULLが設定される場合があります。
取得した文字列は改行コードで区切られ,複数行で構成される場合があります。
戻り値
DMA_TRUE 正常終了
DMA_FALSE 異常終了
戻り値の詳細
major_code | minor_code | 説明 | 対処 |
---|---|---|---|
ERR_DBR | ERR_OBJECT_NOT_INITIALIZE | オブジェクトが初期化されていません。 | 初期化を実行してください。 |
ERR_DMA | DMARC_ACCESS_DENIED | 要求された操作に対してアクセス権がありません。 | 正しいアクセス権を設定してください。 |
ERR_DMA | DMARC_BAD_PARAMETER | 不正な引数が入力されました。 | 正しい引数を指定してください。 |
ERR_DMA | DMARC_BAD_URL | リソースのURLが不正です。 | URLの内容を見直してください。 |
ERR_DMA | DMARC_BAD_VALUE | プロパティやリストの値が,許容範囲外の値であるかまたは最大値を超えました。 | 値の範囲を見直してください。 |
ERR_DMA | DMARC_NO_MEMORY | メモリ不足で実行できません。 | メモリを増設してください。またはメモリを大量に消費しているアプリケーションを停止させて,処理を再実行してください。 |
ERR_DMA | DMARC_NOT_SUPPORTED | このセッションまたはオブジェクトではサポートされていないメソッドです。 | この操作は実行できません(全文検索インデクス作成用データの出力にはPreprocessing Library for Text Searchが必要です)。 |
ERR_DMA | DMARC_RESOURCE_NOT_FOUND | 指定されたリソースがありません。 | 指定したリソースパスを見直してください。 |
ERR_DMA | DMARC_UNEXPECTED | 予期しないエラーが発生しました。 | 処理を終了してください。 |
ERR_DMA | DMARC_URL_PROTOCOL_NOT_SUPPORTED | サポートしていないURLプロトコルです。 | file:///で始まっているか確認してください。 |
ERR_DMA | EDMRC_PARSE_ERROR | XMLファイルの構文解析エラーが発生しました。 | XMLファイルの内容を見直してください。 |