XML文書の操作を実行する場合に使用するメソッドと,そのメソッドの発行順序の例を説明します。
これらの操作を実行する前に,まず,文書空間と接続してトランザクションを開始してください。
それぞれの操作に使用するメソッドの詳細については,マニュアル「DocumentBroker Version 3 クラスライブラリ C++ リファレンス 基本機能編」を参照してください。
XMLプロパティマッピング機能およびXMLインデクスデータ作成機能を使用してXML文書を作成する場合の,メソッドと,そのメソッドの発行順序について説明します。
なお,XMLプロパティマッピングに必要な定義ファイル類およびXMLインデクスデータを作成するために必要なフィルタリング定義ファイルは,あらかじめ作成しておきます。それぞれの定義ファイルについては,マニュアル「DocumentBroker Version 3 システム導入・運用ガイド」を参照してください。
コールシーケンスの例を次に示します。なお,このコールシーケンスは,UNIXの場合です。Windowsの場合は,GetDmaInfoListメソッドの引数に指定するファイルパスは「"file:///c:¥temp¥xmlcontent.xml"」,「"file:///c:¥temp¥NorParamFile.txt"」および「"file:///c:¥temp¥index.txt"」のように指定してください。CreateIndexメソッドの引数に指定するファイルパスは,「"file:///c:¥temp¥index.txt"」のように指定してください。
CdbrSession Session;
CdbrVersionableDocument VerDoc;
CdbrXmlTranslatorFactory XmlTransFactory
CdbrXmlTranslator XmlTrans;
//CdbrXmlTranslatorFactoryオブジェクトを初期化する
XmlTransFactory.Initialize(pDocSpaceId,
pXmsFileName, &pMessage);
//CdbrXmlTranslatorオブジェクトを作成する
XmlTransFactory.CreateTranslator(&XmlTrans);
//XMLファイルからDMAオブジェクト生成用の構造体
//(SDBR_DMAINFO構造体)と
//インデクスデータ出力ファイルを作成する
XmlTrans.GetDmaInfoList("file:///tmp/xmlcontent.xml",
DBR_XMLPARSE_NO_EXTERNAL_ENTITIES, pMappingId,
DBR_INDEXTYPE_STRUCTURED, "file:///tmp/NorParamFile.txt",
"file:///tmp/index.txt", &DmaInfoList, &pMessage);
//セッションを接続してトランザクションを開始する
Session.Connect(pDocSpaceId, pUserId, pPassword);
Session.Begin();
//SDBR_DMAINFO構造体を使用して文書を作成する
VerDoc.CreateObject(&Session, pDmaInfoList->lCount,
pDmaInfoList->pItem, pXmlFile, "text::xml", &pOIID);
//インデクスデータ出力ファイルを使用して全文検索インデクスを作成する
VerDoc.CreateIndex("file:///tmp/index.txt");
Session.Commit();
//セッションを切断する
Session.Disconnect();
XML文書の更新時に,XMLプロパティマッピング機能およびXMLインデクスデータ作成機能を使用して,プロパティの更新と全文検索インデクスの再作成をする場合の,メソッドと,そのメソッドの発行順序について説明します。
なお,XMLプロパティマッピングに必要な定義ファイル類およびXMLインデクスデータを作成するために必要なフィルタリング定義ファイルは,あらかじめ作成しておきます。それぞれの定義ファイルについては,マニュアル「DocumentBroker Version 3 システム導入・運用ガイド」を参照してください。
コールシーケンスの例を次に示します。なお,このコールシーケンスは,UNIXの場合です。Windowsの場合は,GetDmaInfoListメソッドの引数に指定するファイルパスは「"file:///c:¥temp¥xmlcontent.xml"」,「"file:///c:¥temp¥NorParamFile.txt"」および「"file:///c:¥temp¥index.txt"」のように指定してください。UpdateContentメソッドの引数に指定するファイルパスは,「"file:///c:¥temp¥xmlcontent.xml"」のように指定してください。CreateIndexメソッドの引数に指定するファイルパスは,「"file:///c:¥temp¥index.txt"」のように指定してください。
CdbrSession Session;
CdbrVersionableDocument VerDoc;
CdbrXmlTranslatorFactory XmlTransFactory
CdbrXmlTranslator XmlTrans;
//CdbrXmlTranslatorFactoryオブジェクトを初期化する
XmlTransFactory.Initialize(pDocSpaceId, pXmsFileName,
&pMessage);
//CdbrXmlTranslatorオブジェクトを作成する
XmlTransFactory.CreateTranslator(&XmlTrans);
//XMLファイルからDMAオブジェクト生成用の構造体
//(SDBR_DMAINFO構造体)と
//構造指定検索用全文検索インデクスを生成する。
XmlTrans.GetDmaInfoList("file:///tmp/xmlcontent.xml",
DBR_XMLPARSE_NO_EXTERNAL_ENTITIES, pMappingId,
DBR_INDEXTYPE_STRUCTURED, "file:///tmp/NorParamFile.txt",
"file:///tmp/index.txt", &DmaInfoList, &pMessage);
// セッションを接続してトランザクションを開始する
Session.Connect(pDocSpaceId, pUserId, pPassword);
Session.Begin();
//XML文書に接続する
VerDoc.SetOIID(&Session,pOIID);
//XML文書のコンテントを更新する
VerDoc.UpdateContent("file:///tmp/xmlcontent.xml",
DBR_NOT_CREATE_INDEX);
//XML文書の全文検索インデクスを更新する
VerDoc.CreateIndex("file:///tmp/index.txt");
//XML文書のプロパティを更新する
SDBR_PROPLIST* pPropList;
pPropList=&DmaInfoList.pItem[0].Proplist;
VerDoc.PutPropertyValues(pPropList);
Session.Commit();
//セッションの切断
Session.Disconnect();