【问题标题】:Convert EXI binary data to XML/JSON and viceversa将 EXI 二进制数据转换为 XML/JSON,反之亦然
【发布时间】:2022-01-03 12:58:52
【问题描述】:

TL;DR

使用 exificient-grammar 从 XSD 生成 GRS 文件的最佳方法是什么,可以与 exificient-for-javascript 一起使用?

--

我正在使用 Nodejs 开发 TCP 服务器。客户端以 EXI 格式发送数据。我有 XSD 架构,我想将这些字节以 EXI 格式转换为 JSON 或类似格式。

要使用exificient-for-javascript,我需要使用exificient-grammars 库生成GRS 文件。我从未使用过 Java,但我知道这个库没有 CLI 可执行文件,但您可以将其导入您的项目并使用它。我试图创建一个 java 项目并使用 maven 我正在加载库。我设法运行了这个项目,但我对 Java 的了解很少,这让我为此浪费了很多时间。简而言之,我无法生成 GRS 文件。我的 java 代码(见评论“现在,如何...”):

public class Parser {
    Grammars grammar;

    public void parse() {
        System.out.println("Hello from parser");
        try {
            grammar = GrammarFactory.newInstance().createGrammars("VALID_ABSOLUTE_SYSTEM_PATH_TO_XSD");
            // and now, how to generate an output GRS file???
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

另一方面,exificient 项目确实提供了一个可执行文件来将 EXI 转换为 XML,反之亦然,但是在我的 Nodejs 应用程序中,我得到了一个缓冲区(一个 int8 数组)。我突然想到,我可以从 Nodejs 生成一个二进制文件,并在后台使用 exificient 可执行文件(exec/spawn)对其进行处理,但这对我来说似乎有点矫枉过正。

【问题讨论】:

    标签: javascript node.js xml xsd exi


    【解决方案1】:

    Grammars2JSON 是您正在寻找的课程。

    可以通过将 XSD 作为输入从命令行调用此类。它会创建相应的 JSON 语法文件。

    https://github.com/EXIficient/exificient-grammars/blob/master/src/main/java/com/siemens/ct/exi/grammars/persistency/Grammars2JSON.java#L658

    【讨论】:

      猜你喜欢
      • 2011-11-15
      • 1970-01-01
      • 2021-06-17
      • 1970-01-01
      • 1970-01-01
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多