XMLのノイズ

以前にアプリケーションで使う設定ファイル(XML)を全てDIコンテナの設定ファイルで統一しちゃえ、と乱暴なことを書いたことがあるんだけれど実際にやってみるとちょっと無理があった。XMLながら可読性を優先した属性を多用した構造のXMLを例えばSesar2で使用しているdiconのような汎用の形式にコンバートすると使い勝手は別にしてやはり読み難い。

属性で構造化したGUIバリデーション用制約の設定用XML(制約オブジェクトにマップされる)


    
    

上記XMLからマップされるバリデーション制約オブジェクトをDIコンテナ上のコンポーネントとして定義する場合


  "item1"
  "項目1"
  true
  "FOCUSLOST|KEYSTROKE"
  "UPPERCASE"
  true
  true
  "string"
  "string"
  "項目1を入力してください"

とここで以前に読んだファウラーのblikiの記事を思い出した。

UseOfXml(本家Bliki)
XMLの活用方法(bliki-ja)

XMLのタグによるノイズはそのXMLの構造手法によっても変わるんで一概にはいえないけれど少なくとも私はバリデーションのルールを後者の語彙で書き続けることはできなそう。

でもこれはどちらが優れているか、ということではなく単に「適材適所」の問題。
バリデーション用制約はちょっとしたDSLで書くべきであってDIコンテナコンポーネント定義する類いのものではないということだ。でもこの辺って実際に試してみないと解らないんだよね。