Asakusa Framework Advent Calendar 2013の15日目、DMDLの話の第3弾です。
11日目のDMDLの基礎でも書いた通り、DMDLの文法では「属性(@で始まるやつ)」を指定することが出来ます。
問題は、どういう属性を指定するのか?(指定すればよいのか?)という事です。
DMDLファイルはコンパイルされてモデルクラスが生成されますが、その他の拡張機能を指定するのが属性の役割です。
@namespaceや@auto_projectionといった属性もありますが、どちらかといえばマイナーだと思います。(拙作のDMDL EditorXでは対応していません(爆))
一番使われているのは、インポーター・エクスポーター(外部システムとやりとりするファイル)のクラスを生成する事でしょう。
DirectI/OのCSVファイルの場合は@directio.csv、WindGateのCSVファイルなら@windgate.csv、JDBCなら@windgate.jdbcを指定します。
(逆に言えば、インポーター・エクスポータークラスを生成する必要のないデータモデルでは、こういった属性を指定する必要はありません)
(なお、DirectI/OやWindGateとは、Asakusaアプリケーションの外側のシステムとの入出力(外部連携)を行う仕組み(コンポーネント)です)
つまり、どの属性を指定すればよいかは、外部システム(Asakusaアプリケーションの外側のシステム)との連携方法をどうするか?を決めないと決まりません。
外部連携方法(システムの構成方法)は、www.asakusafw.comの参考資料の『Asakusa Framework-RDBMS連携方法』が参考になると思います。
また、cocoatomoさんがアドベントカレンダーに書かれている外部連携の話(前編・後編)も、ずばりそのものですね(笑)
ちなみに、ひとまずAsakusaFWを試してみようという場合は、たぶん外部連携を考えるよりもDMDLやFlow DSL・Operator DSLを書いてみる方が主になるでしょうから、とりあえず@directio.csvを使っておけばよいと思います。