1

TL;博士

使用 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)处理它,但这对我来说似乎有点矫枉过正。

4

1 回答 1

0

该课程Grammars2JSON是您正在寻找的。

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

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

于 2022-01-17T13:08:37.100 回答