[概要]
JAXBは、スキーマコンパイラの一種で、
XMLSchema(現行のEarly Access版はDTDのみサポート)を読み込んで、
対応するXMLインスタンスをパース/フォーマットできるJavaソースコードを生成します。
[必須環境]
JDKは、ver1.3辺りがあれば十分でしょう。
[実験内容]
適当なXMLファイルを用意して、JAXBを使って読み込み、コンソールに表示してみました。
[実験環境]
JDK: J2SDK1.4
JAXBは、2002/07/26時点で最新の、Early Access版を使いました。
[実験用ソースコード]
・conf.xml
(実験用設定ファイル - Digesterのサンプルで使ったものと同じ)
・test.dtd
(実験用設定ファイルのスキーマ(DTD))
・JAXBTest.java
(テストドライバ)
これらのファイルは、JAXBのアーカイブを展開し、
examplesフォルダの下に、testフォルダを作成し、その中に入れました。
以下のコンパイル方法等は、このフォルダを基点にして書かれています。
[スキーマのコンパイル]
..\..\bin\xjc.bat config-root test.dtd
この結果、以下のファイルが生成されます。
[コンパイル]
javac -classpath ../../lib/jaxb-rt-1.0-ea.jar *.java
[実行]
java -classpath ../../lib/jaxb-rt-1.0-ea.jar;. JAXBTest
[実験結果]
JAXBTest.javaを実行すると、以下のように表示されます。
value1 value2 value3 123
[なんとなく感想]
JAXBTest.javaを見れば分かる通り、かなり直感的です。
Relaxer作ってる人が、
スキーマコンパイラは手放せないとか言ってるのも、うなずけますね。
とりあえず、現時点でDTDしかサポートしてないってのが痛すぎ(>_<;
数値その他もろもろの型で扱いたい場合は、
プログラマ様自ら型変換してあげないといけないのです(T_T)
JAXBホームページの下の方に、
今年中に使えそうなものが出てきそうな予感を感じさせる文章が書いてありますが、
なにぶんXMLSchemaは複雑らしいので、どうなることやら...
やっぱりCastorが本命か?