データディクショナリは、単純要素、複合要素、コレクション要素という 3 種類のデータディクショナリ要素(DDE)から構成されます。単純 DDE は、都市名などの情報を保持する文字列、数値、日付、Boolean 値などのプリミティブ要素です。複合 DDE は他の DDE を含むものであり、そのタイプはプリミティブ、複合、コレクションのいずれでもかまいません。例として、郵便番号、国、都道府県、市町村、番地で構成される住所が挙げられます。コレクションは、同類の単純 DDE または複合 DDE のリストです。例として、複数の住所や、請求先と出荷先の住所が異なる顧客が挙げられます。
データディクショナリ要素は、スキーマ構造に関連する複数のルールに従う必要があります。
複合タイプのみが、データディクショナリ内のトップレベル DDE として使用できます。
複数のトップレベルエンティティを伴う注釈付き FML は読み込むことができません。
名前、参照名および要素タイプは、データディクショナリと DDE において必須のフィールドです。
参照名は一意にする必要があります。
親 DDE(複合)には、同じ名前の 2 つの子を指定できません。
列挙型にはプリミティブな String 型のみが含まれます。
計算済みデータディクショナリ要素データディクショナリには、計算済み要素を含めることもできます。計算済みデータディクショナリ要素は、常に式と関連付けられます。実行時にこの式が評価され、データディクショナリ要素の値が取得されます。計算済み DDE 値は、他の DDE 値またはリテラルによる関数です。デフォルトでは、JSP 式言語(EL)の式がサポートされます。EL 式は ${ } の文字を使用します。有効な式にはリテラル、演算子、変数(データディクショナリ要素の参照)および関数呼び出しを含めることができます。式においてデータディクショナリ要素を参照する際は、DDE の参照名を使用します。あるデータディクショナリに含まれるすべてのデータディクショナリ要素は、それぞれ一意の参照名によって特定されます。
計算済み DDE PersonFullName は、${PersonFirstName} ${PersonLastName} などの EL 連結式に関連付けることができます。
Data Dictionary 構築ブロックのクラス図次の図は、上記の Data Dictionary クラス間の関係を示しています。
DDE に関連付けられる共通属性について、以下の表に示します。
属性
|
タイプ
|
説明
|
name
|
String
|
必須。DDE の名前。一意にする必要があります。
|
reference Name
|
String
|
必須。データディクショナリの階層や構造の変更に左右されない、DDE への参照を可能にする DDE の一意の参照名です。テキストモジュールは、この名前を使用してマップされます。
|
displayname
|
String
|
ユーザーにわかりやすい DDE の名前(オプション)。
|
description
|
String
|
DDE の説明。
|
elementType
|
String
|
必須。DDE のタイプ。STRING、NUMBER、DATE、BOOLEAN、COMPOSITE、COLLECTION のいずれかです。
|
elementSubType
|
String
|
DDE のサブタイプ: ENUM。elementType が STRING および NUMBER の場合のみ使用できます。
|
key
|
Boolean
|
DDE がキー要素であるかどうかを示す Boolean フィールド。
|
computed
|
Boolean
|
DDE が計算済みかどうかを示す Boolean フィールド。計算済み DDE の値は、他の DDE 値の関数です。デフォルトでは、JSP EL 式がサポートされます。
|
expression
|
String
|
「computed」DDEの式。デフォルトで提供される式評価サービスは、JSP EL 式をサポートしています。式サービスをカスタム実装に置き換えることができます。
|
valueSet
|
List
|
列挙型 DDE に使用できる値のセット。例えば、Accounttype には (Saving, Current) 値のみを設定できます。
|
extendedProperties
|
Object
|
DDE に追加されたカスタムプロパティ(ユーザーインターフェイス固有情報やその他の情報)のマップ。
|
required
|
Boolean
|
このフラグは、データディクショナリに対応するインスタンスデータのソースに、この特定の DDE の値が含まれていなくてはならないことを示します。
|
バインド
|
BindingElement
|
要素の XML バインディングまたは Java バインディング。
|
XSD、データディクショナリ、データモデルの間のデータタイプマッピングXSD をモデルの注釈付き FML に書き出すには、固有のデータマッピングが必要になります。これについて、次の表に示します。DDI 列は、DDI で利用できる DDE 値のタイプを示します。
XSD
|
データディクショナリ
|
モデル
|
DDI(インスタンス値のデータタイプ)
|
xs:element(タイプ - 複合タイプ)
|
DDE(タイプ - 複合)
|
エンティティ
|
java.util.Map
|
xs:element(maxOccurs > 1)
|
DDE(タイプ - コレクション)
DDE ノードは、親コレクションノードからの情報を取り込むコレクション DDE の次に作成されます。単純データタイプと複合データタイプの両方のコレクション向けに、同じものが作成されます。複合タイプのコレクションがある場合は常に、Data Dictionary ツリーは、タイプ情報を取り込むために作成された DDE の子に、以下の構成要素フィールドを取り込みます。
- DDE(COLLECTION)
- DDE(情報タイプの COMPOSITE)
- DDE(STRING) field1
- DDE(STRING) field2
|
FML 内のコレクションプロパティ
単純 - コレクションとしてマップされます。
複合 - 対応するエンティティとの基数 one-to-many(一対多)の関係としてマップされます。
|
java.util.List
|
属性(タイプ - xs:id)
|
DDE(タイプ - STRING)
|
id(プロパティ)
|
java.lang.String
|
xs:attribute /xs:element(タイプ - xs:string)
|
DDE(タイプ - STRING)
|
プロパティ(タイプ - string)
|
java.lang.String
|
xs:attribute /xs:element(タイプ - xs:boolean)
|
DDE(タイプ - BOOLEAN)
|
プロパティ(タイプ - boolean)
|
java.lang.Boolean
|
xs:attribute /xs:element(タイプ - xs:date)
|
DDE(タイプ - DATE)
|
とプロパティ(タイプ -date)
|
java.lang.String
|
xs:attribute /xs:element(タイプ - xs:integer)
|
DDE(タイプ - NUMBER)
|
プロパティ(タイプ - double)
|
java.lang.Double
|
xs:attribute /xs:element(タイプ - xs:long)
|
DDE(タイプ - NUMBER)
|
プロパティ(タイプ - double)
|
java.lang.Double
|
xs:attribute /xs:element(タイプ - xs:double)
|
DDE(タイプ - NUMBER)
|
プロパティ(タイプ - double)
|
java.lang.Double
|
列挙型と baseType の要素 - xs:string
|
以下の DDE
type - STRING
subtype - ENUM
valueSet - ENUM に使用できる値
|
プロパティ(タイプ - string)
使用できる ENUM 値は、DDS カテゴリー注釈にマップされます。
|
java.lang.String
|
|
|
|