- PR -

JavaでのDomプログラムおけるXml文書読み込みについて

1
投稿者投稿内容
wiz
会議室デビュー日: 2001/10/11
投稿数: 6
投稿日時: 2001-11-26 19:24
現在、「Javaで実現するDOM/SAXプログラミング」で勉強させていただいています。
Xercesを使用し、javaでxml文書を読み込む際には、
ドキュメントビルダのインスタンスを生成し、parseメソッドでノードツリーを
取得するとあります。
その際、parseメソッドの引数にはxmlファイルのuriか、Fileオブジェクト、
inputStreamを指定できるようですが、「xml文字列」はXercesを使用したプログラムで
はxml文書として読み込めないという事なのでしょうか。

例えば、JavaScriptからJavaServletにxml文字列を渡し、Servlet側でパースする
という事は、Xercesを使用する限りは不可能なのでしょうか。

ご存知の方いらっしゃいましたらご意見ください。
coasm
大ベテラン
会議室デビュー日: 2001/11/26
投稿数: 237
投稿日時: 2001-11-26 20:44
InputStreamdではなくて、Readerから読み込むようなInputSourceを作成して、
それをparseの引数にします。
具体的には、下のような感じです。
------------------------------------------------------
DOMParser parser = ... //DOMパーザ
String xml = ... //XML文字列

Reader reader = new StringReader(xml);
InputSource is = new InputSource(reader);
parser.parse(is);
------------------------------------------------------
wiz
会議室デビュー日: 2001/10/11
投稿数: 6
投稿日時: 2001-11-27 10:00
coasmさんありがとうございました。
InputSourceとは、org.xml.sax パッケージのクラスだったんですね。
おっしゃる通り、xml文字列をparseできるようになりました。
ところで、もう少し突っ込んだ質問をさせていただきたいのですが、
「Javaで実現するDOM/SAXプログラミング」のサンプルソースでは

import org.apache.xerces.parsers.DOMParser;

というように、xercesのクラスライブラリのインポートを明示的に行っていません。
また、このことについて、Factoryパターンと呼んで、説明がなされています。
これは、xerces.jarに標準化されたインターフェースが実装されているという
解釈でよろしいでしょうか?具体的に言うと、xerces.jarの中にはjaxpという標準化
されたパース用インターフェースが存在している。という事でしょうか?

この辺の、パーサの標準化についてもう少し詳しく知りたいと思っています。
(複数パーサの切り替え方など、また、どのような場合にその必要があるか、等)
coasmさん、ご存知の方、ご教授願います。
1

スキルアップ/キャリアアップ(JOB@IT)