XMLを扱う場合のパッケージの選定

[戻る]
kusa [HomePage] 2002/08/07(水) 18:21:52
JavaでXMLを扱おうと思っているのですが、
XMLを扱う(編集)するパッケージに
dom
SAX
JDOM
JAXP
といろいろあるようですが
どのパッケージが扱いやすいものでしょうか
初めての場合はどれが良い等
情報をいただけないでしょうか
よろしくお願いいたします。

dairygoods 2002/08/08(木) 10:23:57
DOM
 DOMのAPIは、特定の言語を想定しないで既定されているので、
 Javaの他のAPIとくらべるとちょっと使い勝手が悪いと感じます。
 現状ではほとんどこれが使われているので、
 資料やサンプルを見つけやすいというのはメリットかも。

SAX
 SAXは、XMLを解析する途中のタグの開始/終了などをイベントとして受け取る
 APIです。文書を1回読むだけで、しかも親子構造を意識する必要がないよう
 な特殊な状況でしか使い道がありません。

JDOM
 JDOMは、DOM APIをJava風に書き換えたものです。JavaのCollection API
 と同じ感覚で使えるので、Javaには慣れているがXMLは初めてというのなら、
 扱いやすいのではないでしょうか。

JAXP
 JAXPは上記3つとは関係なく、XMLのパーサーを汎用的に得る手法を
 提供するAPIです。JDK1.4が利用可能であれば使うべきでしょう。


RELAXERも調べてみると良いかもしれません。

kusa 2002/08/08(木) 12:57:36
dairygoods さんレスありがとうございます。

Sun Java XML Pack - Summer 02 Update Release

をすでに取得積みでした。

JAXPが今後スタンダードに成りそうな感じがしたので使って
みようかと思います。

JAXPはインターフェイスの制定だけのように感じたのですが
実際JAXPを通してDOMを使うような形になるんですかね

dairygoods 2002/08/09(金) 10:46:31
DOMやSAXのパーサーは、いろいろなベンダーが提供しています。
それらを使う場合、普通はベンダー依存のコードを書かねばなりません。
(つまり、ベンダー固有のクラス名が必要)

JAXPは、そのベンダー依存の部分をソースコードから
排除するためのフレームワークです。
JAXPを使うと、ベンダークラスに依存しない形で
DOMまたはSAXのパーサーを取得できます。

なので、JAXPを使う/使わない というのと、
DOM,SAX,JDOMを使う/使わないは別次元の話です。

JAXPにはおまけでSun謹製のXMLパーサーが付属しているので、
JAXPもパーサーの1つであると誤解される方もいるようです。

kusa 2002/08/12(月) 22:53:55
[[解決]]
> JAXPは、そのベンダー依存の部分をソースコードから
> 排除するためのフレームワークです。
> JAXPを使うと、ベンダークラスに依存しない形で
> DOMまたはSAXのパーサーを取得できます。

この部分は非常に重要でした。
いくつかXMLを取り扱ったJavaのソースサンプルを入手したのですが、
ベンダー依存の関係で動かなかったりしています。

ApacheのxercesとJAXPがメインでしょうか
私の印象ではまだ煮詰まっていない技術のように感じました。
書籍も日本語になっているものがあまりにも少ない気が
しますし、苦難の道を歩まねばいけないようです。

がんばってみます
ありがとうございました。

古いスレッドには追加発言できません。