2.3.3 プロパティの追加
DocumentBrokerが提供するクラスとユーザが定義したクラスに対して,プロパティを追加できます。例えば,dmaClass_DocVersionクラスに「文書名」のプロパティを追加するような場合です。ここでは,プロパティを追加できるクラス,プロパティのデータ型,プロパティの基本単位,およびプロパティを追加する場合の注意事項について説明します。
- <この項の構成>
- (1) プロパティを追加できるクラス
- (2) データ型の対応
- (3) プロパティの基本単位
- (4) プロパティを追加する場合の注意事項
(1) プロパティを追加できるクラス
プロパティを追加できるクラスは次のとおりです。
- dmaClass_DirectContainmentRelationshipクラス
- dmaClass_ReferentialContainmentRelationshipクラス
- edmClass_VersionTraceableContainmentRelationshipクラス
- edmClass_PublicACLクラス
- edmClass_Relationshipクラス
- ユーザが追加したサブクラス
(2) データ型の対応
追加できるプロパティのデータ型とHiRDBで対応するデータ型について次の表に示します。
表2-2 追加できるプロパティのデータ型とHiRDBで対応するデータ型
追加できるプロパティのデータ型 | HiRDBで対応するデータ型 |
---|
String | |
Integer32 | INTEGER |
Boolean |
- 注※
- 全文検索機能付き文字列型プロパティは,HiRDB Text Search Plug-inのFREEWORD型を使用します。
(3) プロパティの基本単位
プロパティは,データ型に従った値を1個持つか複数個持つかが決められています。これを基本単位といいます。基本単位には,次の種類があります。
- 値を1個持つプロパティ
- データ型に従った値を一つだけ持つプロパティです。この基本単位はScalar型です。
- 値を複数個持つプロパティ
- データ型に従った複数の値を一つの値として持つプロパティです。この基本単位はList型,Enumeration型およびVariableArray型です。
- List型
- すべてのデータ型の値をリスト化できます。ただし,異なる種類のデータ型は混在できません。したがって,List型のプロパティは,ListOfInteger32オブジェクト,ListOfStringオブジェクトのように,データ型ごとに値をリスト化するオブジェクトへのリファレンスを値として持ちます。
- Enumeration型
- すべてのデータ型の値を列挙します。ただし,異なる種類のデータ型は混在できません。また,DocumentBrokerはObject型の値だけを列挙できます。したがって,Enumeration型のプロパティは,EnumerationOfObjectオブジェクトのようにデータ型に従って値を列挙するオブジェクトへのリファレンスを値として持ちます。
- VariableArray型
- すべてのデータ型の値の一次元配列です。この一次元配列は可変長です。List型,Enumeration型と同様に,異なる種類のデータ型は混在できません。またDocumentBrokerはObject型の値だけを配列要素にできます。したがって,VariableArray型のプロパティは,VariableArrayOfObjectオブジェクトのようにデータ型に従った値を一次元配列として持つオブジェクトへのリファレンスを値として持ちます。
なお,追加できるプロパティは,基本単位がScalar型とVariableArray型であるプロパティだけです。
(4) プロパティを追加する場合の注意事項
- 追加するプロパティの名称には「dmaProp」および「edmProp」で始まる文字列は使用できません。
- 全文検索機能付き文字列型プロパティを追加する場合には,メタ情報の追加コマンド(EDMAddMeta)を使用してください。文書空間の定義コマンド(EDMCDefDocSpace)および文書空間の構築コマンド(EDMCBuildDocSpace)の使用では,全文検索機能付き文字列型プロパティを追加できません。