付録A.2 DocumentBrokerで使用するDMAクラス

ここでは,DMAクラスおよびプロパティについて説明します。

<この項の構成>
(1) クラス
(2) プロパティ

(1) クラス

ここでは,DMAクラスについて説明します。

(a) クラスの識別子

DMAクラスは,次の識別子を付与して管理しています。

(b) クラスの継承関係

クラスは,その直上にあるクラスが持つプロパティを選択して継承します。

DMAクラスは,dmaClass_DMAクラスというクラスを基にしたツリー構造をしています。主なDMAクラスのツリー構造を,次の図に示します。

図A-1 DMAクラスの階層構造

[図データ]

DocumentBrokerが用意しているDMAクラスは,dmaClass_DMAクラスが持つプロパティを受け継ぎ,各クラスで固有のプロパティが付加されたり,必要に応じて削除されたりしています。

また,DMAクラスのうち,下記のクラスについては,直下にサブクラスを定義できます。

サブクラスは,システム管理者が定義します。

(c) クラスのメタデータ

各DMAクラスに関する詳細情報は,プロパティの一つとして保持されています。さらに,このプロパティの具体的な内容は,別のオブジェクトとして形成されています。このオブジェクトを,メタデータオブジェクトといいます。DMAクラスの詳細情報を記載したメタデータオブジェクトは,ClassDescriptionオブジェクトです。ClassDescriptionオブジェクト自身も,dmaClass_ClassDescriptionクラスを基に作成されるオブジェクトです。

ClassDescriptionオブジェクトに記載されている情報の一部を示します。

次の図にClassDescriptionオブジェクトの例を示します。

図A-2 ClassDescriptionオブジェクトの例

[図データ]

図A-2について説明します。

  1. ここでは,usrClass_Documentクラスという,dmaClass_DocVersionクラスのサブクラスを仮定します。このusrClass_Documentクラスを基にDocumentオブジェクトを作成します。
  2. DocumentオブジェクトのdmaProp_ClassDescriptionプロパティには,ClassDescriptionオブジェクトを参照するリファレンスが格納されています。リファレンスとは,独立なオブジェクトへの関連をたどる機能を提供して,Object型のプロパティとして表現します。
  3. ClassDescriptionオブジェクトには,usrClass_Documentクラスの詳細情報が記載されています。ClassDescriptionオブジェクトは,dmaClass_ClassDescriptionクラスを基に作成されたオブジェクトです。
  4. ClassDescriptionオブジェクトにもdmaProp_ClassDescriptionプロパティがあります。dmaProp_ClassDescriptionプロパティには,ClassDescriptionオブジェクトを参照するリファレンスが格納されています。
  5. ClassDescriptionオブジェクトには,dmaClass_ClassDescriptionクラスの詳細情報が記載されています。このClassDescriptionオブジェクトも,dmaClass_ClassDescriptionクラスを基に作成されています。
  6. このClassDescriptionオブジェクトにもdmaProp_ClassDescriptionプロパティがあります。しかし,これ以上参照先がないので,このプロパティにはNULL値が設定されます。
(d) メタデータ空間
メタデータ空間とは
各DMAクラスを,継承関係に基づいて管理する空間をメタデータ空間といいます。したがって,メタデータ空間は,DMAクラスの集合です。
各DMAクラスの定義情報は,そこに含まれるDMAクラスのClassDescriptionオブジェクトを探索することによって得られます。
メタデータ空間には,そこに含まれるDMAクラスによって次の種類があります。
  • Systemオブジェクトのメタデータ空間
  • DocSpaceオブジェクト(文書空間)のメタデータ空間
  • Scopeオブジェクトのメタデータ空間
  • 問い合わせ結果のメタデータ空間
これらのメタデータ空間には,含まれるDMAクラスの定義が決められています。
なお,どのメタデータ空間にも,DMAクラスの継承の基になるdmaClass_DMAクラスが含まれます。

(2) プロパティ

ここでは,DMAクラスのプロパティの詳細について説明します。

(a) プロパティの識別子

プロパティには,クラスと同様にGUIDが付けられて管理されます。クラスから継承されるプロパティの識別子は,サブクラスとスーパークラスで同じです。ただし,プロパティのデータ型と意味が同じであれば,直接的な継承関係を持たないクラスで同じプロパティ識別子が付けられます。

(b) プロパティの継承関係

DMAクラスのプロパティは,そのクラスのサブクラスに必要に応じて継承されます。

システム管理者がサブクラスを作成する場合,DocumentBrokerによってスーパークラスに定義されているプロパティは,すべて継承する必要があります。

(c) プロパティのデータ型

ここでは,プロパティが持つデータ型について説明します。

基本単位には,次の種類があります。

(d) プロパティのメタデータ

プロパティに関する詳細情報は,データ型に従ってdmaClass_PropertyDescriptionクラスにデータ型ごとにあるサブクラスのオブジェクトに記述されます。例えば,プロパティの値がString型の場合は,PropertyDescriptionStringオブジェクトにプロパティの詳細情報が記述され,プロパティの値がInteger32型の場合は,PropertyDescriptionInteger32オブジェクトにプロパティの詳細情報が記述されます。以降,dmaClass_PropertyDescriptionクラスのサブクラス(dmaClass_PropertyDescriptionStringクラスやdmaClass_PropertyDescriptionInteger32クラスなど)のオブジェクトを総称してPropertyDescriptionDataTypeオブジェクトと呼びます(DataTypeの部分は各データ型に対応します)。PropertyDescriptionDataTypeオブジェクトは,クラスの詳細情報を記述したClassDescriptionオブジェクトの,dmaProp_PropertyDescriptionsプロパティから参照されるメタデータオブジェクトです。PropertyDescriptionDataTypeオブジェクト自身もdmaClass_PropertyDescriptionDataTypeクラスを基に作成されるオブジェクトです。

PropertyDescriptionDataTypeオブジェクトに記載されている情報を一部示します。

次の図にPropertyDescriptionDataTypeオブジェクトの例を示します。

図A-3 PropertyDescriptionDataTypeオブジェクトの例

[図データ]

図A-3について説明します。

  1. ここでは,Documentオブジェクトを仮定して説明します。Documentオブジェクトは,dmaClass_DocVersionクラスのサブクラスusrClass_Documentクラスを基に作成されていると仮定します。DocumentオブジェクトのdmaProp_ClassDescriptionプロパティには,ClassDescriptionオブジェクトを参照するリファレンスが格納されています。
  2. ClassDescriptionオブジェクトには,usrClass_Documentクラスの詳細情報が記載されています。ClassDescriptionオブジェクトには,dmaProp_PropertyDescriptionsプロパティがあります。dmaProp_PropertyDescriptionsプロパティには,PropertyDescriptionDataTypeオブジェクトのリスト(ListOfObjectオブジェクト)を参照するリファレンスが格納されています。
  3. ListOfObjectオブジェクトからPropertyDescriptionDataTypeオブジェクトの要素を取得します。
  4. 要素として複数のPropertyDescriptionDataTypeオブジェクトがあります。ここでは,要素0のPropertyDescriptionStringオブジェクトが,dmaProp_OIIDプロパティの詳細情報を記述していることを示しています。同様に,要素2のPropertyDescriptionStringオブジェクトが,usrProp_Authorプロパティの詳細情報を記述していることを示しています。