照会のメディエーターによって作成されたスキーマは、各照会ステートメントについて 1 つの Eclass で構成されます。 Eclass の名前は、EJB の Abstract Schema Name (ASN) です。 Eclass の Eattributes は、照会ステートメントによって戻されるコンテナー管理パーシスタンス (CMP) フィールドまたは式に対応します。
静的 DataObjects の場合、createMediator 呼び出しで Map 引数が使用されるのであれば、Eclass 名が異なっていてもかまいません。
FROM 文節または XREL 文節で指定された 各 EJB 関係は、スキーマに対する Ereference を追加します。 EJB 関係は、単一方向であっても双方向であってもかまいません。 ただし、すべての Ereferences は双方向として定義されます。これは、更新の際に効率的に DataGraph を移動する必要があるからです。 逆関係名は単一方向の EJB 関係の場合に生成されます。 生成される名前のフォーマットは、<ASName_source><ASName_target> となります。 例えば、ASNames が EmpBean および DeptBean であり、単一方向関係が EmpBean から DeptBean へ向かう dept である場合、生成される逆方向名は DeptBeanEmpBean です。
DataGraphRoot の Eclass 名を持つ「ダミー」 DataObject も作成され、すべての DataObjects への包含参照を持っています。 参照は多値で、EJB ASN 名を使用します。
DataObject root = m.getGraph( parms ); root.getType().getName(); // this would return the string "DataGraphRoot" List depts = (List) root.get("DeptBean"); // the list of all DeptBean SDOs in the DataGraph List emps = (List) root.get("EmpBean"); // the list of all EmpBean SDOs in the DataGraph
サービス・データ・オブジェクト (SDO) 間の参照は、包含参照として定義できます。この場合、1 つの SDO が 削除されると、削除はすべての包含 SDO にカスケードされます。 また、DataGraph が XML 文書としてシリアライズされると、包含 SDO も親 SDO 内にネストされます。 非包含参照は、XML 文書内でパス式として表されます。
包含は DataGraph スキーマ内で定義されなければなりません。 メディエーターがスキーマを定義すると、(DataGraphRoot という名前の) ルート SDO が他のすべての SDO を含みます。 EJB 関係は非包含 SDO 参照として定義 されます。