• ベストアンサー

jdkで使用されているXMLパーサ

いつもお世話になります。 jdkで使用されているXMLパーサは何なのでしょうか。 javaでXMLを操作するに当たり、jaxpというapiが用意されていますが、jaxpはあくまでdomやsaxの 実装クラスをラップしたものだという認識でいます。 では何の実装クラスが使われているのでしょうか。各パージョンで何が使われているのか知りたいです。 また、ここら辺の事を説明しているサイトがあれば教えて頂けると嬉しいです。 宜しくお願いします。

  • Java
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • vaguechat
  • ベストアンサー率85% (47/55)
回答No.1

JAXPのページにあるFAQによれば概ねApache XercesがJDKにバンドルされているパーザ未指定時に使われるデフォルト実装になっている。 http://jaxp.java.net/1.4/JAXP-FAQ.html の3つ目。 System.out.println(javax.xml.parsers.DocumentBuilderFactory.newInstance().getClass()); System.out.println(javax.xml.parsers.SAXParserFactory.newInstance().getClass()); System.out.println(javax.xml.transform.TransformerFactory.newInstance().getClass()); でXMLパーザやXSLTプロセッサのファクトリー実装のクラス名を確認できる。 パッケージ名から何が使われているかのヒント程度にはなるだろう。

関連するQ&A

  • XMLパーサの種類について混乱してます

    XSLTをいじる必要に駆られて、現在Java1.4+JAXP1.1を利用しています。 いままで、javax.xml.transformをimportしてメソッドを実行するだけで、「変換系に何を使っているのか」については全く気にしていなかったのですが、その実体は何なのでしょうか? (XTとかXalanとか、単体の変換系がありますよね・・・?) また、DOMパーサ、SAXパーサもJAXPで使えますが、各々のパーサや変換系を集めてパッケージにしたものがJAXPなんでしょうか。 さらに、勉強中にXMLパーサという単語が出てきて混乱しています。XMLパーサは、DOM・SAX・XSLT等とは違うのでしょうか? (XMLパーサと名乗っているXercesは何に使うのでしょうか・・・) DTDとの関連も含めて解説して頂けたら嬉しいです。

    • ベストアンサー
    • Java
  • JavaでのXMLパーサの使用について

    javaでパーサを使ってDOMツリーを作成したいのですが、パーサインスタンスが作成できずにエラーがでてしまいます。ちなみにコンパイルは通ります。 以下にソースとエラー内容を記述しますので、もしよろしかったらどなたか教えて下さい。 import java.io.*; import com.ibm.xml.parsers.*; import org.xml.sax.*; import org.w3c.dom.*; public static void main(String[] args){ try{      //XML文書作成 String xml = "<sample>Hello Java World</sample>"; //DOMパーサ作成 DOMParser parser = new DOMParser(); //入力ストリーム作成      StringReader sr = new StringReader(xml); InputSource is = new InputSource(sr); //パースする parser.parse(is); //ドキュメントを得る Document doc = parser.getDocument(); //トップレベル要素を得る Element el = doc.getDocumentElement(); System.out.println("Top Level Element: " + el.getTagName()); } catch(Exception e){ e.printStackTrace(); } } エラー内容: java.lang.NoClassDefFoundError: com.ibm.xml.parsers.DOMParser java.lang.Throwable(java.lang.String) java.lang.Error(java.lang.String) java.lang.LinkageError(java.lang.String) java.lang.NoClassDefFoundError(java.lang.String) void pkxml.dom.PsDomBean.makedom() void pkxml.dom.PsDomBean.makedom() void pkxmlsutabu.Sutabu.main(java.lang.String [])

  • JavaからXMLプロセッサを使うとは?

    JavaでXMLを処理する必要に駆られまして、一念発起して勉強しています。 XMLを処理するためには、JavaのAPIがあってそれを利用するというのはokで、処理方法にはDOM・SAX・XSLTといったものがあるというのもわかりました。 ただ、DOMやSAXが、Javaプログラムからデータを読む手助けをするためのモノというのはわかるのですが、XSLTはただの変換とどう違うのでしょうか? 本を読む限り、XSLの規則にしたがって変換するもの。となっていて、読み込ませる→変換結果が出てくる、で、なんだかHTMLの生成くらいにしか使えないような印象なのですが、Javaとタッグを組んでデータを処理させたい場合、どんな使われ方をするのでしょうか。 DOMやSAXでも良いじゃんと言われそうなのですが、HTMLも同時に扱う必要があるため、ぜひ習得したいのです。 ですが、市販のJava本はほとんどXMLパーサ関係ばかりで・・・。また、何かいい参考書もあったら教えていただきたいと思います。

    • ベストアンサー
    • Java
  • XML.XSLT

    自分で解決ができないので、少し聞かせてください。 質問は、XMLを利用して、XSLTの出力です。 まずは、サンプルでの実装を確認しようと思いまして、 http://www.hellohiro.com/xslt.htm のサイト利用させていただいております。 それで、サイトの説明通り、 http://java.sun.com/xml/downloads/javaxmlpack.html から、java_xml_pack-summer02_01.zipをダウンロードして、xalan.jar、jaxp-api.jar、dom.jar、sax.jar、xercesImpl.jarを配置しました。配置内容は、まず、 C:\jdk1.3\jre\lib\ext に配置しました。そして、サーバアプリは、JRun3.0を使用してますので、C:\Program Files\Allaire\JRun\lib\ext に配置しました。余談になると思うのですが、toolで、forte for java2.0を使っているので、C:\forte4j\lib\extにも配置しました。そして、上記サイトの下方の「サーブレットを利用しての表示」のコードをコンパイルは成功したのですが、ブラウザからの呼び出しでは、真っ白な表示になってしまいます。 自分では、CLASSPATHに問題があるのでは?と思い、いろいろ試したのですがダメです。ちなみに、autoexec.batには、 SET PATH=c:\jdk1.3\bin;%PATH% SET CLASSPATH=.;C:\jdk1.3\jre\lib\ext\xalan.jar;C:\jdk1.3\jre\lib\ext\jaxp-api.jar;C:\jdk1.3\jre\lib\ext\sax.jar;C:\jdk1.3\jre\lib\ext\domjar としています。 どこの設定が間違っているのか、助言をください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • DOMでパースしているXML全体の出力方法

    お世話になります。 JavaでDOMを使ってXML操作をしたいと考えております。 おおよそ、以下のソースでparseできるところまで確認できました。 DOMParser parser = new DOMParser(); parser.parse("XMLファイルパス"); Document doc = parser.getDocument(); 開発中なので、DOM操作した結果のXMLを随時コンソールやログに 出力させたいのですが、たとえばdoc.toString()してもnullとなり、 正常に出力されません。 以下のようにElementを取得すると正常にアクセスできていることは 確認しています。 Element rootEl = doc.getDocumentElement(); System.out.println(rootEl.getNodeName()); なお、DOMライブラリにはxercesを用いております。 Dom4jのAPIも見てみましたが、それらしいメソッドを見つけることが できていません。 簡単にXMLを出力できることが理想です。 一般的な方法、よくやる手法など、みなさんよりご教示頂きたいです。

    • ベストアンサー
    • Java
  • DOMのXML宣言値の変更

    XMLファイルをXMLパーサを使ってDOMにDocumentクラス変換します。 その変換してできたオブジェクトを操作して、 XML宣言のencodingの値を変更することは可能でしょうか?

    • ベストアンサー
    • Java
  • Windows98でXMLは使えますか??

    最近XMLを勉強し始めた全くの初心者です。。 本を見ながら勉強しているんですが、JavaによるXML操作ということで JAXP1.1をSun Microsystems社のサイトからダウンロード して使うことになっているんですが、そのサイトにはJAXP1.1はありません。 1.2のものしかなく、しかも他のものとパックになっていてダウンロードするようになっているようです。 そのパックのものは使用環境も決まっていて「Windows2000」以上 でしか使えないというようなことが英語で書いてあるようなのですが、私の パソコンは「98」なのでそのパックは使えないのでしょうか? JAXP1.1が入手できれば良いのですが、もう手に入れることは無理でしょうか? そもそも「Windows98」でJavaによるXML文書操作はできるのでしょうか? 詳しい方がいましたら、ぜひぜひ教えてください。お願いします。

    • ベストアンサー
    • XML
  • XMLファイルを読み書きしたい

    WindowsXP+VC++6.0です。 タイトルの通り、XMLファイルから値を読み込んだり書き込んだりしたいのですが、javaのSAXのように簡単に使えるAPIやクラスライブラリをご存知ないでしょうか?

  • SAXでXMLファイルを読むときにチェック(?)する

    お世話になります。 <?xml version="1.0"?> <!DOCTYPE A [ <!ELEMENT A (B)> ]> <A> </A> 上記のXMLをSAXにてparseをかけると多分「定義とちがうじゃん!」というような趣旨のエラーがでるとおもっていたのですが、普通に処理されてしまいました。 DTDのチェックってどうやってやるのでしょうか? SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setValidating(true); SAXParser parser = factory.newSAXParser(); parser.parse(xmlFile, new DefaultHandler()を拡張したクラス); このようなかんじでやっているのですが、 これがまちがえていますか? SAXのバージョンとかも関係するのかもしれないのですが、 これ使ってともらったやつなのでどのように調べていいのかわかりません。 以上よろしくお願い致します。

    • ベストアンサー
    • Java
  • ServletからXMLを読み込む方法

    こんにちわ。 JSPからGETで受け取ったデータと、ローカルXMLファイルのデータの画面表示をサーブレットを使って行いたいと思っています。 このとき、XMLファイルからのデータ取得方法が分かりません。 普通のJavaであればDOMとしてXMLを操作したことがあるのですが、サーブレットの場合、違ってくるのでしょうか。 簡単な例等を教えていただけると嬉しいです。 お手数ですが、お分かりになる方、どうぞご教授くださいませ。

専門家に質問してみよう