@ITのここのページに載ってました。
結局、こうなるみたい。
| JAXなんとかのまとめ |
|---|
| JAXP | XML文書を読み書き |
| JAXM | SOAPのメッセージ用API |
| JAXB | XMLとJavaのバインディング |
| JAXR | UDDIのようなXMLレジストリアクセスAPI |
| JAX-RPC | Webサービスを構築するためのAPI |
*バインディング:「オブジェクトをマッピング」するって、具体的にはXMLとJavaを対応づける
で、表題のXMLからJavaに変換するには、普通JAXBの話になる。
| JAXBでJavaのクラスを作るにはXMLのスキーマ必要 |
|---|
で、JAXBのはなし。
JAXBについては、ここに書かれているように、
| ・ | XMLのスキーマ構造からJavaのクラスに変換するxjc |
| ・ | XMLのインスタンスとJavaのインスタンス間の変換を行うマーシャル・アンマーシャル |
になる(そのページの図がわかりやすいと思います)
そのため、たとえば、開発のときにドキュメントからJavaのクラスを自動生成するために、JAXBを使おうとすると、ドキュメントからXMLのスキーマ構造に変換して、(xjcを使って)Javaのクラスを作ることになる。
ところが、XMLのスキーマ構造である、XMLSchemaとか、DTDとか(Relaxも使えるのかな?)とかは、書くのがめんどっちい。
目からビームが出るほどだ(でないでない)
なんで、気軽にできない。
とくに、手書きで書いてもらうことなんてできない。
だから、ドキュメントからJavaで自動変換してもらうのは、どーなのどーなのと思ってた。
| JAXPは、XMLのインスタンスを読み込み、展開する |
|---|
でも、ちょっとまてよ!と気づいた。
JAXPを使えば、XMLのスキーマがなくても、インスタンスだけ読み込んで、そのままDOMとして展開できる。
っていうことは、
| (1) | JAXPを使ってXML文書をDOMで読み込み |
| (2) | 読み込んだ内容をもとに、ファイル入出力で、JAVAのクラスを書き出せばいいじゃん |
そっかそっか、きっと、みんな、そーやってるのね(^^;)
でも、ウィリアムのいたずら、JavaでDOMをつかったことないんですう。
Access VBAなんかだとあるけど(その成果はこちら)
つーことで、一度にはできないので(べつに、ネタを出し渋っているわけではない。いくら、本家が、乙部綾子さんネタで、何度も分けて書いてるからって、ここもそれを狙って。。。??いないっす)、これから数回にわけて、JAXPからXMLからJavaに変換するプログラムのお勉強を公開したいと思います。