jaxbをやってみる

ケツに火がついている状態で、XMLをクラスオブジェクトに変換してくれる方法を探してみました。とりあえず参考にしたのは http://www.stackasterisk.jp/tech/java/jaxb01_01.jsp です。

JAXB実装を持つ JWSDP を、モルモット機にインストールしてみました。GUIベースのインストーラとはちょっと驚いたうえに、日本語がちゃんと表示できなかった(たぶんメイン機のXサーバ側の問題か)のですが、とりあえずロケールをCにしてしまえばOK。インストールは難なくいきました。
で、ためしに自前の xsd ファイルを食わせ、生成されたソースをコンパイルし、駆動させようとすると、なぜか jaxb.properties を見つけることができない、と怒ってくる。適切と思われる位置に複写してもうまくいかない。結局原因は不明。
もういっかい冷静になって http://www.stackasterisk.jp/tech/java/jaxb01_03.jsp あたりをそのままコピーして実験してみたら成功。その後、xsdファイルやxmlファイルを入れ替えてソース生成、コンパイル、実行、とやってみると、問題なく行きました。
なぞです…。
それはともかく、まとめると、

mkdir src
xjc.sh -d src/ 
javac -d . src/(NS)/*.java src/(NS)/impl/*.java src/(NS)impl/runtime/*.java
cp src/(NS)/jaxb.properties (NS)/

てなかんじです。なお、ここではカレントをクラスのルートにした場合です。また、(NS)とあるのは、指定したネームスペースによって変更される部分です。