问题标签 [exi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
5695 浏览

xml - EXI(高效 XML 交换)即将到来…… XML API 准备好了吗?

W3 的 EXI(高效 XML 交换)将被标准化。它声称是“最后一个二进制标准”。

它是一种存储 XML 数据的标准,针对处理和存储进行了优化,与 XML 模式捆绑在一起(使数据具有强类型和强结构化)。好吧,有很多声称的优势。处理和内存效率测量给我留下了最深刻的印象。

我在问自己,所有已建立的 XML API 会发生什么?

有一段与我的问题有关:

4.2 现有的 XML 处理 API

由于 EXI 是 XML Infoset 的编码,EXI 实现可以支持任何用于 XML 处理的常用 XML API,因此 EXI 对现有 XML API 没有直接影响。但是,使用现有的 XML API 还需要将 EXI 文档中出现的所有名称和文本转换为字符串。将来,如果更高层可以直接使用这些数据作为出现在 EXI 文档中的类型值,则可以实现更高的效率。例如,如果更高层需要类型化数据,则通过其字符串形式会产生性能损失,因此直接支持类型化数据的扩展 API 可以在与 EXI 一起使用时提高性能。

来自:http ://www.w3.org/TR/exi-impacts/

我将其理解为:“将 EXI 与现有 API 一起使用?没有性能提升!(除非你全部重写)”

我们以 Java 生态系统为例:

我们在最新的 JDK 6 中有大量的 XML API(随着每个主要的 JDK 版本,越来越多的它们被添加。)据我所知,它们中的大多数(如果不是全部)都使用内存中的 DOM 树,或序列化(“文本”)表示来转换/处理/验证/... XML 数据。

你们怎么看,随着 EXI 的引入,这些 API 会发生什么?

谢谢大家的意见。

对于那些不知道 EXI 的人:http: //www.w3.org/XML/EXI/

0 投票
3 回答
2139 浏览

xml-serialization - 关于选择不同二进制 xml 工具的建议

我的要求是在开始解析之前将 xml 文件压缩成二进制格式,传输并解压缩(快速)。

有相当多的二进制 xml 协议和工具可用。与其他人相比,我发现 EXI(高效的 xml 交换)更好。尝试了它的开源版本 Exificient 并发现它很好。

我听说过 google protocol buffers 和 facebook's thrift,谁能告诉我这两个是否能完成我正在寻找的工作?

或者只是让我知道是否有比 EXI 更好的东西我应该寻找。

此外,与 DOM、SAX 和 Stax 相比,有一个很好的 XML 解析器 VTD-XML(我自己没有尝试过,只是用谷歌搜索并阅读了一些文章)可以实现更好的解析性能。

我想要两全其美,最佳压缩+最佳解析性能,有什么建议吗?

关于 EXI 的另一件事是,EXI 如何声称能够快速解析解码的 XML 文件?因为它正在被 DOM、SAX 或 Stax 解析?如果有另一个二进制解析器用于读取解码版本,我会相信这是真的。如果我错了,请纠正我。

另外,EXI 格式有什么好的 C++ 开源实现吗?EXIficient 提供了 java 版本,但我无法发现 C++ 开源实现?

有一个敏捷三角洲,但那是商业的。

0 投票
5 回答
4581 浏览

java - 用于编码/解码 EXI 的 java 示例?

我正在寻找使用EXIficientOpenEXI编码/解码EXI(高效 XML 交换)流的 Java 示例程序。

有人可以帮忙吗?我似乎找不到示例应用程序。

编辑:或者,如果有人可以向我指出允许我使用 EXIficient 或 OpenEXI 的文档,那将很有帮助。我找到了 javadoc,但我不知道要使用哪些类。

或者,正如@StaxMan 指出的那样,是否特别提到/讨论了与标准 XML API 之一一起使用的适当顶级类?

0 投票
5 回答
3789 浏览

c# - .NET 高效 XML 的实现

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

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

0 投票
1 回答
336 浏览

java - 提取 EXI 压缩的 XML 时出现编码问题

下面的代码试图简化使用EXIficient执行 EXI 压缩和解压缩所需的设置

下面的测试失败了ERROR: 'Invalid byte 1 of 1-byte UTF-8 sequence.'

那里有任何编码专家可以深入了解这一点吗?

0 投票
1 回答
2216 浏览

c++ - 使用 C++ 解析 EXI

我需要一些与 C++ 一起使用的东西,它可以解析 EXI 格式的消息。我对解决方案的形式并不挑剔。这可能是一个类似 Xerces 的库,一组类似 rapidxml 的头文件,甚至是一个离线“编译器”,它接收 XSD 文件并根据内容创建 C/C++ 源。

不可能是任何形式的 Java 解决方案。我遇到过 EXIficient 和 OpenEXI,它们都是基于 Java 的解决方案,不适合我的情况。我在嵌入式环境中工作,我们不会拥有 JVM 的“奢侈”。

0 投票
1 回答
621 浏览

android - 将 XML 字符串编码为 EXI 并通过 websocket 发送

首先,我使用的是客户端-服务器架构,客户端使用 android,服务器使用 node.js,它们通过 Socket.io 库连接,因此,它们使用的是 websockets。

我的疑问是我正在使用 Java 的 XMLSerializer 生成 XML 字符串,我想将其编码为 EXI 并将其发送到服务器,因此,是否可以在不使用文件的情况下进行编码 XML-EXI?直接从字符串到字符串?因为我看到的所有示例都假设我的 XML 位于一个文件中,并且我希望输出到另一个文件中。另一个疑问是,我可以将 EXI 作为字符串发送吗?因为我已经建立了客户端和服务器之间的通信,但是它们只是发送字符串,如果我可以发送整个文件,我不会发送,在这种情况下,发送的数据量会有所不同吗?

0 投票
1 回答
240 浏览

ios - 在 ipad 上写入 EXI 格式的 xml

我需要在 ipad 应用程序上读取和写入 w3c 格式的 xml 文件。在我之前的应用程序中,我使用 GDataXML 读取了基本的 xml 文件,这完全符合我的需要。我可以使用相同的 GDataXML 来读取和写入 w3c 格式的 xml 文件吗?还是我需要不同的类?

编辑:我需要读写的格式是Efficient XML Interchange (EXI)

0 投票
1 回答
297 浏览

exi - 如何在没有标签的情况下解码 EXI 文件(高效 XML AgileDelta)

我尝试使用 Efficient XML 对 HTML 文件进行编码和解码。如何防止解码器在结果文件的开头添加标签?这是我正在使用的代码:

我试图改变工厂的一些属性,但没有帮助。例如:

0 投票
1 回答
534 浏览

java - Nagasena/OpenExi:使用 < in 属性对 xml 进行编码

我在 C# 中实现了 Nagasena 编码器:

我在编码简单有效的 xml 女巫时遇到问题,包含 <> 或&lt;&gt;

它只是以 TransmogrifierException: Nagasena.Sax.TransmogrifierException: End of document is not expected 结束。

我正在使用 c# 实现,所以我在 java 实现中测试了问题 - 它运行良好。所以我试图改变一些选项,但没有任何帮助。

当我<Text>&lt;</Text><Text><![CDATA[<]]></Text>和从<Booo id="6001&lt;" />我删除&lt;-替换时<Booo id="6001" />,编码成功。但是在属性中没有使用 cdata 的可能性,并且当它包含 <> 或者&lt;&gt;它以错误结束时。

我将调试 nagasena 库,但如果有人有一些有用的建议,我将不胜感激。

谢谢