高效XML的.NET实现

时间:2012-02-24 17:03:59

标签: c# xml visual-studio compression exi

我将大型数据库导出为xml格式。需要将此XML数据压缩为尽可能小的格式。我听说过很多关于Efficient XML(EXI)的信息,并且想知道是否有.NET实现,以便可以从代码中调用它......

有没有人有这方面的例子,因为在线资源似乎有点稀疏......

5 个答案:

答案 0 :(得分:3)

这种实施确实存在。创建高效XML交换格式(AgileDelta)offers an Efficient XML library的前身的公司,其中包括.Net版本。虽然他们似乎没有公布价格。

The official EXI site未列出任何其他.Net实施。

答案 1 :(得分:3)

Nagasena同时具有.Net(用C#编写)和EXI规范的Java实现。

答案 2 :(得分:2)

原来,微软创建了自己的二进制XML格式/编码,名为MC-NBFX(catchy eh)。这是.NET框架和.NET 3.0中的WCF的一部分。有关详细信息,请参阅:

另一种选择是通过IKVM运行Java实现来生成.Net程序集。我能找到的开源Java实现是:

答案 3 :(得分:0)

您是否有理由想要尽可能小的格式? XML实际上并不是为压缩优化而设计的。 @Svick的回答是现在的事实,如果你想要的是易于获取的档案。

你可以在这里找到很多你要问的内容: Best compression algorithm for XML?

如果您想要的是定期访问的归档数据,EXI非常棒。否则,如果您的目标是长期归档,只需使用zip实用程序即可。 KISS。

答案 4 :(得分:0)

如果您需要粘贴到XML标准,那么二进制XML是可行的方法(并且有一些实现)。

即使不是XML,JSON也会丢失数字。 Ex 32位无符号整数最大值将由JSON中的10个字节表示。在几乎所有二进制格式中,这将是4个字节。这将适用于日期/时间等。

任何具有标准元素/属性类型的体面二进制XML都应该提供更好的大小和处理效率。如果它可以重用标签,比如压缩文件中的字典,就像从表中导出一样,也是一个不错的功能。