大規模なデータベースをxml形式でエクスポートしています。このXMLデータは、可能な限り最小の形式に圧縮する必要があります。Efficient XML(EXI)について多くのことを聞いたことがあり、コード内から呼び出すことができるように.NET実装があるかどうか疑問に思っていました...
オンラインリソースが少しまばらに見えるので、誰かがこれの例を持っていますか...
大規模なデータベースをxml形式でエクスポートしています。このXMLデータは、可能な限り最小の形式に圧縮する必要があります。Efficient XML(EXI)について多くのことを聞いたことがあり、コード内から呼び出すことができるように.NET実装があるかどうか疑問に思っていました...
オンラインリソースが少しまばらに見えるので、誰かがこれの例を持っていますか...
Microsoftは、MC-NBFX(catchy eh)と呼ばれる独自のバイナリXMLフォーマット/エンコーディングを作成したことが判明しました。これは、.NET3.0以降の.NETFrameworkおよびWCFの一部です。詳細については、以下を参照してください。
もう1つのオプションは、IKVMを介してJava実装を実行し、.Netアセンブリを生成することです。私が見つけたオープンソースのJava実装は次のとおりです。
そのような実装は存在します。Efficient XML Interchange形式(AgileDelta)の前身を作成した会社は、.Netバージョンを含むEfficientXMLライブラリを提供しています。彼らは価格を公表していないようですが。
公式のEXIサイトには、他の.Net実装はリストされていません。
Nagasenaには、EXI仕様の.Net(C#で記述)とJavaの両方の実装があります。
可能な限り最小のフォーマットが必要な理由はありますか?XMLは、実際には圧縮最適化用に設計されていません。@Svickの答えは、必要なものがすぐにアクセスできるアーカイブである場合、今のところ事実です。
ここであなたが求めているものの多くを見つけることができます: XMLに最適な圧縮アルゴリズム?
EXIは、定期的にアクセスされるアーカイブデータが必要な場合に最適です。それ以外の場合、目標が長期にわたるアーカイブである場合は、zipユーティリティを使用してください。接吻。
バイナリXMLは、XML標準に準拠する必要がある場合に使用する方法です(そして、いくつかの実装があります)。
JSONは、XMLでなくても、数字で失われます。Ex 32ビットのunsignedintの最大値は、JSONでは10バイトで表されます。ほぼすべてのバイナリ形式では、これは4バイトになります。これは、日付/時刻などに適用されます。
標準の要素/属性タイプを持つ適切なバイナリXMLは、サイズと処理効率が大幅に向上するはずです。テーブルからエクスポートするときに、圧縮ファイルの辞書のようにタグを再利用できる場合も、優れた機能になります。