xjcの出力ソースエンコーディング
xjcでスキーマからJavaソースに変換する時、出力エンコーディングが指定できない。そんなばかなと思ったけど、コマンドラインオプションには無いし、スキーマの中にannotateする方法も見つからない。普通は、大きな問題にならないのだろうけど、jaxb生成ファイルと、手で書いたソースの両方からJavaDocを生成しようとすると、どうしようもなくなる。
UTF-8がデフォルトの環境だと、jaxb生成ソースもUTF-8になる。ならば、手書きソースもUTF-8にしておけば良い。でも、これをWindows-31Jがデフォルトの環境に持って行くと困ることになる。javacまでは、ソースの格納場所を分けたりして、なんとかなるんだけど、javadocは、やっぱり1つにまとめたい。でもソースがバラバラのエンコーディングで記述されているソースを、JavaDocで処理することはできない。
XMLみたいに、Javaのソースも中にエンコーディングを明示的に書けると良かったのにねぇ。ついでにタブのサイズとかも明示的に書ければ、いらぬ争いを生まなくて済むのかも。
P.S. とりあえずJDK6付属版は、どうにもならない感じなので、jaxbのページから、2.1.6を入手、
java -Dfile.encoding=UTF-8 -jar jaxb_home/lib/jaxb-xjc.jar ...
で回避。





