Java ME 的最佳二进制/普通 XML 实现是啥?
Posted
技术标签:
【中文标题】Java ME 的最佳二进制/普通 XML 实现是啥?【英文标题】:What is the Best binary/ordinary XML implementation for Java ME?Java ME 的最佳二进制/普通 XML 实现是什么? 【发布时间】:2008-10-01 12:20:48 【问题描述】:在 Izb 关于Best binary XML format for JavaME 的问题之后,我正在寻找二进制 XML 类格式或纯 XML 的实现。我对这种实施的衡量标准,首先最重要的是:
-
支持的手机。一个基本的JTWI 电话应该能够运行它。
它应该是经过验证或开源的,所以我可以对其进行验证。
内存占用小。
快。
易于在服务器端使用。
【问题讨论】:
【参考方案1】:看看 kXML - http://kxml.objectweb.org/。它支持 WBXML,内存占用少,但对错误不是很严格。
【讨论】:
【参考方案2】:W3C 对二进制 XML 技术进行了广泛而开放的分析,其中包括 9 个月的基准测试,以确定哪些最适合他们的use cases and requirements。基于此分析,他们选择了一种格式为single standard for the web。
他们选择的技术称为“高效 XML”,而不是另一位评论者所报告的 FastInfoset。 W3C 发现 FastInfoset 的用例没有达到足够的紧凑性和通用性。您可以在 W3C 的公共邮件列表http://lists.w3.org/Archives/Public/public-exi/2009Dec/0001.html 上找到有关此决定的简短说明。您可以从http://www.agiledelta.com/product_efxsdk.html 找到适用于移动设备和服务器平台的 W3C EXI 标准的低占用空间、快速实现。
【讨论】:
【参考方案3】:您可以使用NanoXML for J2ME。它运行良好,我在生产环境中从未遇到过任何问题。请注意,它是非验证的。
杨格
【讨论】:
【参考方案4】:W3C 为 XML 定义了一种二进制编码,称为 Fast InfoSet,但它针对大容量 Web 服务而不是嵌入式设备进行了优化,我认为没有适合您的轻量快速实现。
如果您想坚持使用纯 XML,并且需要 DOM 实现,那么请使用 XOM (http://xom.nu)。它很容易成为占用空间最小的 DOM,而且速度非常快。
但如果您确实需要减少占用空间,则需要使用非 DOM API,例如 SAX 或 STAX,但工作量要大得多。
【讨论】:
【参考方案5】:感谢所有回答的人,但这就是我最终所做的-
有一篇关于 Parsing XML in J2ME here 的好文档。那里有一张桌子,上面有一些替代品。现在我选择了 AXMLP 并将其用于 xml-push 解析。
【讨论】:
以上是关于Java ME 的最佳二进制/普通 XML 实现是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Apache Avro 序列化与反序列化 (Java 实现)