データディクショナリ要素

データディクショナリは、単純要素、複合要素、コレクション要素という 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