- PR -

InputSourceクラスのJavaAPIについて

1
投稿者投稿内容
MM
会議室デビュー日: 2002/12/20
投稿数: 11
投稿日時: 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
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2005-09-17 08:18
そもそも普通にparseにInputStream渡せばいいのでは。

[ メッセージ編集済み 編集者: Anthyhime 編集日時 2005-09-17 08:19 ]
YOU@IT
ぬし
会議室デビュー日: 2002/03/29
投稿数: 284
お住まい・勤務地: 大阪
投稿日時: 2005-09-17 11:51
API仕様がW3Cの管理下にあるので、Sunは(動作や仕様変更による下位互換性等を)
保障できませんよ、と言う意味ではないでしょうか。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2005-09-17 11:57
引用:
この中で使用しているInputSourceクラスのJavaAPI1.4に
「このモジュールは、ソースコード、文書ともに公開ドメインに置かれています。
したがって、内容に関する保証は一切提供されません。 」
とあるのですが、これは、動作保証をしません。という事でしょうか?



もちろん、動作保証もしないという意味でしょう。
オープンソースなプロダクトはどれもそうですよ?
MM
会議室デビュー日: 2002/12/20
投稿数: 11
投稿日時: 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)
 もちろん、動作保証もしないという意味でしょう。
 オープンソースなプロダクトはどれもそうですよ?
----------------------------------------------------------------------
ということは、責任がもてなければ、使用しないほうがよいという事でしょうか?
みなさんは、このような時、どうなさりますか?



YOU@IT
ぬし
会議室デビュー日: 2002/03/29
投稿数: 284
お住まい・勤務地: 大阪
投稿日時: 2005-09-18 00:20
引用:

MMさんの書き込み (2005-09-17 23:13) より:
ということは、責任がもてなければ、使用しないほうがよいという事でしょうか?
みなさんは、このような時、どうなさりますか?



ケースバイケースかと...業界標準でもなんでもない、不安定なAPIなら使わない事も考えます。
あるいはラッパインターフェースを挟んで、アプリとの直接の依存性を絶つとかでしょうか。

今回に限って言えば、W3Cがちゃんと管理している(と思う)ので、問題ないと思います。
syo
常連さん
会議室デビュー日: 2003/08/17
投稿数: 43
投稿日時: 2005-09-18 07:48
お世話になっております。

引用:

そうなんですよ。StringオブジェクトからInputStreamオブジェクトが
生成できれば一番良いと思うのですが、当方の勉強不足からわかりませんでした。
よかったら、ご教授お願いします。


 Stringオブジェクトに対して、getBytes()を行ってbyte[]に変換してしまえば、ByteArrayInputStreamを用いることができます。今回の例だと、UTF-8の指定があるため、getBytes("UTF-8")となりますが。

引用:

ということは、責任がもてなければ、使用しないほうがよいという事でしょうか?
みなさんは、このような時、どうなさりますか?


 それを言い出してしまうと、何もできなくなってしまうのではないでしょうか・・・。Javaの標準APIに関しても、バージョンがあがってdeprecatedになるクラスやメソッドもありますしね。とりあえずは、「動作するバージョン」を使い続ける、という選択肢もあるかと思いますが。
MM
会議室デビュー日: 2002/12/20
投稿数: 11
投稿日時: 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

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