问题标签 [exificient]

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 回答
4581 浏览

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

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

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

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

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

0 投票
1 回答
336 浏览

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

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

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

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

0 投票
1 回答
334 浏览

xml - 如何从一个 XML 和几个 XSD 文件中创建一个 EXI 文件?

我正在使用EXIficient将 XML 数据转换为 EXI。它适用于 XML 和 XSD 对,但当我尝试使用由 2 个其他 XSD ( <xs:import namespace=...) 组成的 XSD 时不起作用,这些 XSD 本身由其他 XSD 组成。

我可以手动展平这些 XSD 吗?(这里的 XSD 新手,我读到使用<xs:import...flatten 应用程序不起作用。)

如果有人知道 EXIficient,是否可以使用多个 XSD?

0 投票
2 回答
596 浏览

java - 使用 EXIficient 在 XML 文件中缺少名称空间信息

我正在使用EXIficient将 XML 数据转换为 EXI 并返回 XML。在这里,我使用他们的EXIficientDemo 类。示例代码:

首先它将 xml 文件转换为 EXI,然后再转换回 XML,当它从先前生成的 EXI 文件生成 XML 时,它会丢失一些有关 Namespace 的信息。

实际 XML 文件:

EXIficient 生成的 XML 文件

在生成的 XML 文件中,缺少xmlns:tts="http://www.w3.org/ns/ttml#styling"

如何解决这个问题?如果可以,请帮助我。

0 投票
2 回答
690 浏览

android - Android获取Exif信息问题

为了获取图像的 Exif 信息,我编写了如下代码:

我还在 AndroidManifest.xml 中添加了读、写权限

现在问题出在某些特定文件夹,例如/storage/emultaed/0/Pictures、/storage/emultaed/0/Download,exif.getAttribute(...) 的返回值为空。

我想知道是否有任何 3rd 方库可以解决这个问题?谢谢您的帮助。

0 投票
1 回答
333 浏览

xml - 使用 EXI:如何保存评论?

我尝试使用exificient-gui对 XML 文件进行编码/解码,但未保留原始 XML 文件中包含的注释。我使用了这些设置:

使用 Exificient GUI

生成的 XML 文件(编码/解码后)不再包含 XML 注释。

然后我尝试对OpenExi做同样的事情,结果相同(= 没有评论)。

我也尝试过为 Exificient 和 OpenExi 提供的 Java 示例;再次没有评论。

  • Exificient(或 OpenExi)GUI 保留评论的正确选项是什么?
0 投票
1 回答
556 浏览

xml - 使用 EXI:如何处理大型 XML 文件(~ 20 GB)?

我目前正在评估 EXI 以压缩大型 XML 文件。大是指 20 GB(二十)的 XML 文件。

EXI 压缩编解码器和非 EXI 压缩编解码器 (gzip/lzma) 都集成在 Java 虚拟机上运行的 Scala 应用程序中。GZIP 和 LZMA 由 commons-compress 提供。所有编解码器都在这些 3rd 方库中用 Java 实现。

在具有 8 GB(JVM 为 6 GB)的 64 位 Linux 系统上,当原始 XML 文件约为 10 GB 时,Exificient 和 OpenExi 都可以编码,但无法解码。

  • Exificient 因 OutOfMemory 而失败
  • OpenExi 失败并出现 ArrayIndexOutOfBoundsException: 1000000
  • GZIP/LZMA 没有问题

  • 甲骨文 JDK:1.8-8u40

  • JVM参数:-Xmx6g -XX:+UseG1GC -XX:+UseStringDeduplication

  • 生成的 EXI 编码 XML 文件的大小约为 70 MB

我的问题:

  • EXI 是否暗示(由于它的底层算法)内存使用量随着 XML 输入文件的大小而增加?如果是这样,是否有一个简单的公式来计算所需的内存?
  • 有什么办法可以让它工作(除了分配更多的内存)?
0 投票
1 回答
1402 浏览

android - Exificient exception "schema_reference.4: Failed to read schema document xxx.xsd" with import keyword

我正在尝试使用 Android 15 中的 exificient-grammars 库创建语法(c 是上下文)

从 svg.xsd 导入另外两个模式:xlink.xsd 和 namespace.xsd。这两个文件随 svg.xsd 出现(如您所见,它们位于 svg.xsd 的根目录中。但是我没有创建语法,而是得到了这个异常:

使用 import的两行svg.xsd是:

到目前为止我已经尝试过:

  1. 我天真地试图合并 svg.xsd 中的两个 xsd 只是明白我根本不知道 xsd 文件是如何工作的。
  2. 跟踪消息来源,SchemaInformedGrammars.class但我不明白是什么systemId
  3. (编辑)按照此处支持的建议(第二篇文章)我用来com.siemens.ct.exi.grammars.XSDGrammarsBuilder创建语法:

只是为了得到完全相同的错误......

我的问题: 问题似乎是解析器无法找到另外两个文件。有没有办法以某种方式包含这些文件,以便解析器可以找到它们?