オブジェクトは,CreateObjectメソッドをコールして作成します。このメソッドによって,文書空間上にDMAオブジェクトを構成要素としたクラスライブラリのオブジェクトが作成されます。作成するクラスライブラリのオブジェクトを構成するDMAオブジェクトを特定するために,CreateObjectメソッドをコールする時に,DMAオブジェクトを作成する基になるDMAクラスをCreateObjectメソッドの引数に指定する構造体(SDBR_DMAINFO構造体)に指定します。
それぞれのクラスライブラリのオブジェクトを作成する時に指定するDMAオブジェクトのクラス識別子を次の表に示します。なお,クラス識別子の代わりにNULLを指定することもできます。NULLを指定すると,デフォルトのクラス識別子を指定したものとしてオブジェクトが作成されます。
表2-1 クラスライブラリのオブジェクトを作成するときに指定するDMAオブジェクトのクラス識別子
クラスライブラリのクラス | 指定するDMAオブジェクトのクラス識別子 | デフォルトのクラス識別子 |
---|---|---|
CdbrConfiguratedReferentialContainerクラス | dmaClass_ConfigurationHistoryクラスまたはそのサブクラス | dmaClass_ConfigurationHistory |
edmClass_ContainerVersionクラスまたはそのサブクラス | edmClass_ContainerVersion | |
CdbrDocumentクラス | dmaClass_DocVersionクラスまたはそのサブクラス | edmClass_VersionTracedComponentDocversion |
CdbrIndependentPersistenceクラス | edmClass_IndependentPersistenceクラスまたはそのサブクラス | edmClass_IndependentPersistence |
CdbrPublicACLクラス | edmClass_PublicACLクラス | edmClass_PublicACL |
CdbrReferentialContainerクラス | dmaClass_Containerクラスまたはそのサブクラス | dmaClass_Container |
CdbrVersionableDocumentクラス | dmaClass_ConfigurationHistoryクラスまたはそのサブクラス | dmaClass_ConfigurationHistory |
dmaClass_DocVersionクラスまたはそのサブクラス | edmClass_VersionTracedComponentDocversion | |
CdbrVersionTraceableContainerクラス | edmClass_ContainerVersionクラスまたはそのサブクラス | edmClass_ContainerVersion |
CreateObjectメソッドによってオブジェクトを作成するコールシーケンスの例を示します。
CdbrDocument ObjDoc;
SDBR_DMAINFO DmaClassList[1];
//DMA情報構造体にクラス識別子を設定する
DmaClassList[0].ClassId = usrClass_DocVersion;
DmaClassList[0].PropList.pItem = NULL;
DmaClassList[0].PropList.lCount = 0;
pSession->Begin();
ObjDoc.CreateObject(pSession,
1, DmaClassList,
"file:///tmp/sample.txt", "MIME::text/plain", &pOIID,
DBR_CREATE_INDEX);
ObjDoc.ReleaseObject();
pSession->Commit();