问题标签 [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.
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 一起使用时提高性能。
我将其理解为:“将 EXI 与现有 API 一起使用?没有性能提升!(除非你全部重写)”
我们以 Java 生态系统为例:
我们在最新的 JDK 6 中有大量的 XML API(随着每个主要的 JDK 版本,越来越多的它们被添加。)据我所知,它们中的大多数(如果不是全部)都使用内存中的 DOM 树,或序列化(“文本”)表示来转换/处理/验证/... XML 数据。
你们怎么看,随着 EXI 的引入,这些 API 会发生什么?
谢谢大家的意见。
对于那些不知道 EXI 的人:http: //www.w3.org/XML/EXI/
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++ 开源实现?
有一个敏捷三角洲,但那是商业的。
java - 用于编码/解码 EXI 的 java 示例?
我正在寻找使用EXIficient或OpenEXI编码/解码EXI(高效 XML 交换)流的 Java 示例程序。
有人可以帮忙吗?我似乎找不到示例应用程序。
编辑:或者,如果有人可以向我指出允许我使用 EXIficient 或 OpenEXI 的文档,那将很有帮助。我找到了 javadoc,但我不知道要使用哪些类。
或者,正如@StaxMan 指出的那样,是否特别提到/讨论了与标准 XML API 之一一起使用的适当顶级类?
c# - .NET 高效 XML 的实现
我正在将大型数据库导出为 xml 格式。需要将此 XML 数据压缩为尽可能小的格式。我听说过很多关于 Efficient XML (EXI) 并且想知道是否有一个 .NET 实现,以便可以从代码中调用它......
有没有人有这方面的例子,因为在线资源似乎有点稀疏......
java - 提取 EXI 压缩的 XML 时出现编码问题
下面的代码试图简化使用EXIficient执行 EXI 压缩和解压缩所需的设置
下面的测试失败了ERROR: 'Invalid byte 1 of 1-byte UTF-8 sequence.'
那里有任何编码专家可以深入了解这一点吗?
c++ - 使用 C++ 解析 EXI
我需要一些与 C++ 一起使用的东西,它可以解析 EXI 格式的消息。我对解决方案的形式并不挑剔。这可能是一个类似 Xerces 的库,一组类似 rapidxml 的头文件,甚至是一个离线“编译器”,它接收 XSD 文件并根据内容创建 C/C++ 源。
这不可能是任何形式的 Java 解决方案。我遇到过 EXIficient 和 OpenEXI,它们都是基于 Java 的解决方案,不适合我的情况。我在嵌入式环境中工作,我们不会拥有 JVM 的“奢侈”。
android - 将 XML 字符串编码为 EXI 并通过 websocket 发送
首先,我使用的是客户端-服务器架构,客户端使用 android,服务器使用 node.js,它们通过 Socket.io 库连接,因此,它们使用的是 websockets。
我的疑问是我正在使用 Java 的 XMLSerializer 生成 XML 字符串,我想将其编码为 EXI 并将其发送到服务器,因此,是否可以在不使用文件的情况下进行编码 XML-EXI?直接从字符串到字符串?因为我看到的所有示例都假设我的 XML 位于一个文件中,并且我希望输出到另一个文件中。另一个疑问是,我可以将 EXI 作为字符串发送吗?因为我已经建立了客户端和服务器之间的通信,但是它们只是发送字符串,如果我可以发送整个文件,我不会发送,在这种情况下,发送的数据量会有所不同吗?
ios - 在 ipad 上写入 EXI 格式的 xml
我需要在 ipad 应用程序上读取和写入 w3c 格式的 xml 文件。在我之前的应用程序中,我使用 GDataXML 读取了基本的 xml 文件,这完全符合我的需要。我可以使用相同的 GDataXML 来读取和写入 w3c 格式的 xml 文件吗?还是我需要不同的类?
编辑:我需要读写的格式是Efficient XML Interchange (EXI)。
exi - 如何在没有标签的情况下解码 EXI 文件(高效 XML AgileDelta)
我尝试使用 Efficient XML 对 HTML 文件进行编码和解码。如何防止解码器在结果文件的开头添加标签?这是我正在使用的代码:
我试图改变工厂的一些属性,但没有帮助。例如:
java - Nagasena/OpenExi:使用 < in 属性对 xml 进行编码
我在 C# 中实现了 Nagasena 编码器:
我在编码简单有效的 xml 女巫时遇到问题,包含 <> 或<>
:
它只是以 TransmogrifierException: Nagasena.Sax.TransmogrifierException: End of document is not expected 结束。
我正在使用 c# 实现,所以我在 java 实现中测试了问题 - 它运行良好。所以我试图改变一些选项,但没有任何帮助。
当我<Text><</Text>
用<Text><![CDATA[<]]></Text>
和从<Booo id="6001<" />
我删除<
-替换时<Booo id="6001" />
,编码成功。但是在属性中没有使用 cdata 的可能性,并且当它包含 <> 或者<>
它以错误结束时。
我将调试 nagasena 库,但如果有人有一些有用的建议,我将不胜感激。
谢谢