- - PR -
InputSourceクラスのJavaAPIについて
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-09-17 06:29
MMと申します。
XML文書のStringオブジェクトからorg.w3c.dom.Documentオブジェクトを 生成したくて、以下のようなサンプルを作成しました。 動作自体はうまく動いているのですが、 この中で使用しているInputSourceクラスのJavaAPI1.4に 「このモジュールは、ソースコード、文書ともに公開ドメインに置かれています。 したがって、内容に関する保証は一切提供されません。 」 とあるのですが、これは、動作保証をしません。という事でしょうか? それとも、他の手段でDocumentオブジェクトを生成する事が 可能なのでしょうか? 以下サンプル String strXML = "<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?>"; strXML = strXML + "<PERSONS>"; strXML = strXML + " <PERSON>"; strXML = strXML + " <NAME>"; strXML = strXML + " <FIRST_NAME>山田</FIRST_NAME>"; strXML = strXML + " <LAST_NAME>花子</LAST_NAME>"; strXML = strXML + " </NAME>"; strXML = strXML + " <AGE>30</AGE>"; strXML = strXML + " </PERSON>"; strXML = strXML + "</PERSONS>"; Reader sr = new StringReader(strXML); InputSource is = new InputSource(sr); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(is); <環境> OS:Windows2000 JDK:1.4.1_02 | ||||||||
|
投稿日時: 2005-09-17 08:18
そもそも普通にparseにInputStream渡せばいいのでは。[ メッセージ編集済み 編集者: Anthyhime 編集日時 2005-09-17 08:19 ] | ||||||||
|
投稿日時: 2005-09-17 11:51
API仕様がW3Cの管理下にあるので、Sunは(動作や仕様変更による下位互換性等を)
保障できませんよ、と言う意味ではないでしょうか。 | ||||||||
|
投稿日時: 2005-09-17 11:57
もちろん、動作保証もしないという意味でしょう。 オープンソースなプロダクトはどれもそうですよ? | ||||||||
|
投稿日時: 2005-09-17 23:13
MMです。
Anthyhimeさん、YOU@ITさん、あしゅさん、 返信、有難うございます。 引用: ---------------------------------------------------------------- Anthyhimeさんの書き込み (2005-09-17 08:18) より: そもそも普通にparseにInputStream渡せばいいのでは。 ---------------------------------------------------------------------- そうなんですよ。StringオブジェクトからInputStreamオブジェクトが 生成できれば一番良いと思うのですが、当方の勉強不足からわかりませんでした。 よかったら、ご教授お願いします。 引用: ---------------------------------------------------------------- YOU@ITさんの書き込み(2005-09-17 11:51) API仕様がW3Cの管理下にあるので、Sunは(動作や仕様変更による下位互換性等を) 保障できませんよ、と言う意味ではないでしょうか。 ---------------------------------------------------------------------- 引用: ---------------------------------------------------------------- あしゅさんの書き込み(2005-09-17 11:57) もちろん、動作保証もしないという意味でしょう。 オープンソースなプロダクトはどれもそうですよ? ---------------------------------------------------------------------- ということは、責任がもてなければ、使用しないほうがよいという事でしょうか? みなさんは、このような時、どうなさりますか? | ||||||||
|
投稿日時: 2005-09-18 00:20
ケースバイケースかと...業界標準でもなんでもない、不安定なAPIなら使わない事も考えます。 あるいはラッパインターフェースを挟んで、アプリとの直接の依存性を絶つとかでしょうか。 今回に限って言えば、W3Cがちゃんと管理している(と思う)ので、問題ないと思います。 | ||||||||
|
投稿日時: 2005-09-18 07:48
お世話になっております。
Stringオブジェクトに対して、getBytes()を行ってbyte[]に変換してしまえば、ByteArrayInputStreamを用いることができます。今回の例だと、UTF-8の指定があるため、getBytes("UTF-8")となりますが。
それを言い出してしまうと、何もできなくなってしまうのではないでしょうか・・・。Javaの標準APIに関しても、バージョンがあがってdeprecatedになるクラスやメソッドもありますしね。とりあえずは、「動作するバージョン」を使い続ける、という選択肢もあるかと思いますが。 | ||||||||
|
投稿日時: 2005-09-20 00:39
MMです。
YOU@ITさん、syoさん、返信有難う御座います。 引用: ---------------------------------------------------------------- syoさんの書き込み (2005-09-18 07:48) より: Stringオブジェクトに対して、getBytes()を行ってbyte[]に変換してしまえば、 ByteArrayInputStreamを用いることができます。 今回の例だと、UTF-8の指定があるため、getBytes("UTF-8")となりますが。 ---------------------------------------------------------------------- ご教授、有難う御座います。 テストプログラムを作成したらうまく行きました。 引用: ---------------------------------------------------------------- YOU@ITさんの書き込み (2005-09-18 00:20) より: ケースバイケースかと...業界標準でもなんでもない、不安定なAPIなら使わない事も考えます。 あるいはラッパインターフェースを挟んで、アプリとの直接の依存性を絶つとかでしょうか。 今回に限って言えば、W3Cがちゃんと管理している(と思う)ので、問題ないと思います。 ---------------------------------------------------------------------- 引用: ---------------------------------------------------------------- syoさんの書き込み (2005-09-18 07:48) より: それを言い出してしまうと、何もできなくなってしまうのではないでしょうか・・・。 Javaの標準APIに関しても、バージョンがあがってdeprecatedになるクラスやメソッドも ありますしね。 とりあえずは、「動作するバージョン」を使い続ける、という選択肢もあるかと思いますが。 ---------------------------------------------------------------------- ご助言、感謝します。 確かにJAVAの標準APIを疑っていたら何も出来なくなってしまいますね。 今回に関して、syoさんに教えて頂いたStringオブジェクトからInputStreamオブジェクトを 生成して、Doucumentオブジェクトを生成する方法を取りたいと思います。 有難う御座いました。 |
1