- PR -

ParserConfigurationException

1
投稿者投稿内容
banboo
大ベテラン
会議室デビュー日: 2003/12/05
投稿数: 210
投稿日時: 2004-10-14 18:26
下記のプログラムにおいて、意図的に
ParserConfigurationException
を発生させたいと考えております。

ParserConfigurationExceptionに関して、Javadocを見ると
http://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/xml/parsers/ParserConfigurationException.html

「重大な構成エラーを示します。」

と一言書いてあるのですが、実際のところどのような
場合におきるのでしょうか?

ご存知の方がいらっしゃいましたらご教授ください。


import java.io.OutputStream;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.XMLSerializer;
import org.xml.sax.SAXException;

public class XMLUtil {
//パーサーの作成(妥当性検証無し)
public static DocumentBuilder getParser()
throws ParserConfigurationException, SAXException {
//document builder factory を作る
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//名前空間を認識する
factory.setNamespaceAware(true);
//builder object(パーサー) を作る
DocumentBuilder parser = factory.newDocumentBuilder();
return parser;
}
//DOMツリーを出力する
public static XMLSerializer getSerializer(OutputStream out) {
//出力フォーマットの指定
OutputFormat formatter = new OutputFormat();
//空白文字の保存
formatter.setPreserveSpace(true);
//XMLSerializer の作成
XMLSerializer serializer = new XMLSerializer(out, formatter);
return serializer;
}
}


おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2004-10-14 18:41
引用:

実際のところどのような場合におきるのでしょうか?


私も起きたことが無いんで何とも言いがたいんですが、、、

パーサとはXMLパーサのことであり、XMLパーサのAPIはJAXPとして標準化されています。
従って、Java2 APIはXMLパーサの実装とは切り離されています。例えば、XMLパーサの
実装としては、Apache XMLのXercesなんかが有名です。

で、JavaプログラムからはJAXPを経由してパーサを呼び出すんですが、その際に
パーサの設定がおかしい(例えば指定したパーサの実装クラスが見つからない)場合に
上記例外が吐かれると思われます。

# あれ、でもこれだとClassNotFoundExceptionになるのかな??
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-10-14 18:58
DocumentBuilderFactoryインタフェースを実装しnewDocumentBuilderメソッドで例外を
発生するようにしたダミークラスを作成し、そのクラスを
javax.xml.parsers.DocumentBuilderFactoryシステムプロパティで指定する。

で、どうですか?
1

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