XMLを扱う場合のパッケージの選定 – プログラミング – Home

XMLを扱う場合のパッケージの選定
 
通知
すべてクリア

[解決済] XMLを扱う場合のパッケージの選定


kusa
 kusa
(@kusa)
ゲスト
結合: 22年前
投稿: 18
Topic starter  

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


引用未解決
トピックタグ
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

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
 kusa
(@kusa)
ゲスト
結合: 22年前
投稿: 18
Topic starter  

dairygoods さんレスありがとうございます。

Sun Java XML Pack - Summer 02 Update Release

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

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

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


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

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

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

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

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


返信引用
kusa
 kusa
(@kusa)
ゲスト
結合: 22年前
投稿: 18
Topic starter  

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

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

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

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました