"No namespace declared for bin:bin" Java 项目中嵌入的 BaseX 出错

"No namespace declared for bin:bin" error with BaseX embedded in Java project

我在我的 java 项目中嵌入了 BaseX,如下所示:

Integrate BaseX with Maven

我正在尝试 运行 现在通过 BaseX Query Processor

查询

如果我 运行 这个查询在 BaseX Standalone 中正常执行。 如果我尝试在嵌入式 QueryProcessor 中 运行 它找不到 bin 命名空间。 代码示例:

import org.basex.core.Context;
import org.basex.query.QueryException;
import org.basex.query.QueryProcessor;
import org.basex.query.value.Value;

public class BaseXTest {

    public static void main(String[] args) {

        String query = "bin:bin(\"0010\")";
        Context context = new Context();

        try {
            QueryProcessor proc = new QueryProcessor(query, context);

            // Execute the query
            Value result = proc.value();

            // Print result as string.
            System.out.println(result);
        } catch (QueryException e) {
            e.printStackTrace();
        }
    }

}

它给我的错误如下所示:

org.basex.query.QueryException: No namespace declared for "bin:bin". at org.basex.query.util.Err.thrw(Err.java:991)

我知道查询处理器的 module() 和 namespace() 函数,但真的不知道如何使用它们。

任何人都可以帮助我在嵌入式 BaseX QueryProcessor 中使用模块吗?

binary module was not added but for BaseX 7.8(实际上不是最新版本,但请确保您至少有那个 运行)。 db:system() 将 return 执行 BaseX 版本,因此您可以验证您使用的是哪个 BaseX 版本 运行..