プロパティファイルを扱う単純なライブラリを設計しています。
Properties
JRE 1.5 以降、クラスは次のようなメソッドを定義していることに気付きました。
public synchronized void loadFromXML(InputStream in)
public void storeToXML(OutputStream os, String comment)
これがこのクラスの API の実際の拡張であるという事実に疑問を抱いています。JRE 1.5以降、プロパティファイルはテキストベースのファイルであり、新しく導入されたXML形式は、別の形式を使用する可能性を除いて、機能に何も追加していません.
- より冗長
- より複雑 (理解する、変更する、解析する)
- より非効率的です (dom を内部的に使用して hastable にパースします。より多くのメモリを消費し、実装にヘルパー クラスが必要であり、おそらく速度も遅くなります)
- より壊れやすい (xml では文字 <>&"' のエスケープが必要ですが、プロパティでは Java のバックスラッシュのエスケープもサポートされているため、バックスラッシュのみをエスケープする必要があります)
- JDK 1.4 を実行しているユーザーは xml プロパティを読み取ることができないため、それを使用するプログラムの下位互換性が失われます。(わかりました、誰が気にします...)
そのため、Sun のエンジニアがこの機能を追加した理由がわかりません。
質問は:
従来のテキスト ベースのプロパティ ファイルよりも XML ベースのプロパティ ファイルを使用する方が有利だと思う人はいますか?
前に引用した単純なライブラリに無駄な機能を追加したくないので、この問題を評価する必要があります。
Java プロパティ ファイルではなく XML ベースのプロパティ ファイルを使用したことがありますか? なぜ?
注:Log4J xmlファイル形式についても同じ質問をすることができますが、少なくともLog4J xml形式はネスト機能と何らかの意味を持つある種の構文を追加し、私はそれを理解しています. しかし、プロパティのこの xml 形式では、そうではありません。