Java ME的最佳二进制/普通XML实现是什么?
继Izb关于JavaME最佳二进制XML格式的问题之后,我正在寻找一种实现类似XML的二进制格式或者仅使用纯XML的实现。首先,最重要的是,我的实现指标是:
- 支持的手机。基本的JTWI手机应该可以运行它。
- 它应该经过验证或者开源,因此我可以对其进行验证。
- 内存占用量小。
- 快速地。
- 易于在服务器端使用。
解决方案
W3C为XML定义了一种二进制编码,称为快速信息集(Fast InfoSet),但它已针对高容量Web服务(而非嵌入式设备)进行了优化,并且我认为没有适合轻便而快速的实现。
如果要坚持使用纯XML,并且需要DOM实现,请使用XOM(http://xom.nu)。它很容易是具有最小占用空间的DOM,而且速度非常快。
但是,如果我们确实需要减少占用空间,则需要使用非DOM API,例如SAX或者STAX,但这需要大量工作。
我们可以将NanoXML用于J2ME。它运作良好,在生产环境中我从未遇到任何问题。请注意,它是无效的。
an
看一下kXML http://kxml.objectweb.org/。它支持WBXML并具有较低的内存占用量,但是对错误的要求不是很严格。
感谢所有回答的人,但这就是我最终要做的-
这里有一个有关在J2ME中解析XML的很好的文档。那里有一张桌子,上面有一些替代品。现在,我选择使用ASXMLP并将其用于xml-push解析。
W3C对二进制XML技术进行了广泛而开放的分析,包括9个月的基准测试,以确定哪种最小,最快和最佳的用例和要求。基于此分析,他们选择了一种格式作为Web的单一标准。
他们选择的技术称为"高效XML",而不是另一位评论者报告的FastInfoset。 W3C发现FastInfoset在其用例上没有达到足够的紧凑性和通用性。我们可以在http://lists.w3.org/Archives/Public/public-exi/2009Dec/0001.html上的W3C的公共邮件列表中找到此决定的简短说明。我们可以从http://www.agiledelta.com/product_efxsdk.html找到适用于移动设备和服务器平台的W3C EXI标准的快速,低成本实现。