InfoPathすげーーー

今のプロジェクトでは、画面に付随する情報をxmlで管理しようとしているのだが、
画面数が全部で200近くあるので、これを直接テキストエディタで編集するのはちょっと厳しい。


そこで、このxmlを管理する方法を検討しているのだが、単純にRDBのテーブルを抜き出してきたようなものではなく、
構造化されているので、Excelで管理してマクロでxml出力というのもちょっと手間がかかる。
それに、私はVBA大嫌いなので、このやり方は却下。


その時に、ふと思い出したのはMicrosoft Officeの一員でありながらいまいち脚光を浴びることのなかった
Microsoft Infopath 2003」(最新版は2007だけどいまのプロジェクトの開発機にはないので)
これはすごいですよ!
なぜはやらないのか? というくらいすごいですよ!


先ほどのxmlを編集するフォームをつくるには、
1.編集するxmlファイルのXML Schemaを定義する(.xsdファイル)
2.InfoPathを起動し、空白のフォームを開く
3.データソースの追加で、1のxsdファイルを開く
4.データソースのツリービューから、ルートノードをフォームにドラッグアンドドロップ


これだけ。
たったこれだけで、かなりいい感じの入力フォームができます。
繰り返し項目や、ドロップダウンリストからの選択や必須項目なども、xsdに設定しておけばできます。
これに、ちょっとした説明を付け加えれば入力フォームの完成ですよ!


さらに、1つのxmlに対して複数のビューが設定できるので、一覧形式のビューとかもドラッグアンドドロップで簡単にできます。
もう、なんというかXML界のAccessみたいな感じです。

もともとは、エンドユーザが簡単に申請書などのフォームを作れて、かつ、xml形式のデータを出力することで、システムで扱いやすくするためのツールだったらしいが、むしろ開発者にとってのメリットのほうが格段に大きな気がする。


ただ、残念なのは、スキーマを変更したときには手作業が必要になるというところくらいか。
http://support.microsoft.com/kb/827006/ja
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/odc_ac2003_ta/html/Infopath/odc_inf_lab_08.asp