Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

Java.Beans.XMLEncoderによる生成されたXMLタグの出力制限について

はじめまして、XMLEncoderについて質問させてください。

XMLEncoder が作成するXML には Bean のすべてのプロパティの値が書き出されるとは限らなく、 保存する Bean のプロパティの値とその Bean がデフォルトコンストラクタで作成された直後のプロパティの値を比べて等価でない場合にのみ XML にそのプロパティの値が書き出されるですが、
しかし、この場合、下記のような無意味なXMLタグが出力され、DBの容量を圧迫することになっている。
<void property="value3"> 
   <string></string> ⇒(無駄なXMLタグと考えている)
</void> 
java.beans.XMLEncoder.javaをオーバーライドし、上記のようなスペースや空文字のXMLタグが出力されないように改修することができるでしょうか。
もしできるなら、その方法を簡単にご教授頂けないでしょうか。

以上、宜しくお願い致します。

7

回答

5171

閲覧

7件の回答

評価

0

補填などは同一スレにしてくださいキラモニめ

評価

0

補填

XMLEncoderについて、特定のプロパティを保存しないようにする方法があると思いますが、ここでの質問では、特定のプロパティに対してのXMLの出力制限ではなく、つまり、そのプロパティに入って来る値としてスペースや空文字の場合があって、
普通の文字列の場合もある。

質問をまとめると以下になります。
XMLEncoder.javaをオーバーライドし、以下の条件を満たすような改修方法があるでしょうか。
1、プロパティに入って来る値が文字列の場合、XMLを出力す  る。
2.プロパティに入って来る値がスペース及び空文字の場合、
  XMLの出力を制限する(出力しない)。

以上、宜しくお願い致します。

評価

0

なんでわざわざ別に立てるんだ。
自分で以前のトピックを削除できるのならともかく。

それはそうと、その名前もやめよう。
…と言うとまた新しいトピックができるのだろうか。

評価

0

で、なんでXMLEncoderにこだわってるの?
JavaでXMLを吐くクラスはいろいろあり、それぞれ一長一短だ。
要求に合わないものにいつまでも拘泥する必要もない。

単純なものなら、自分でエンコーダを書いたっていいし。

評価

0

$さん

ご回答、ありがとうございます。

> 自分で以前のトピックを削除できるのならともかく。
どうも削除できないようで、申し訳ないです。

> JavaでXMLを吐くクラスはいろいろあり、それぞれ一>
 長一短だ。
例えば、どういうクラスがあるのかを、お教えていただ
けないでしょうか。

以上、宜しくお願い致します。

評価

0

XMLBeans, Digster, JAXB, JAXP...

評価

0

すでに例示されているけど、「java xml」くらいのキーワードは、鸚鵡返しにする前に検索してしかるべき。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。