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

标签 java namespaces xquery basex

我已经使用 maven 在我的 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()将返回执行的 BaseX 版本,因此您可以验证您正在运行的 BaseX 版本..

关于java - Java 项目中嵌入 BaseX 的 "No namespace declared for bin:bin"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44465400/

相关文章:

java - 缓冲读取器上的 NullPointerException

java - 读取输出流的内容

Windows 等同于 Linux namespace (每个进程文件系统挂载)?

Marklogic 中的 Xquery 返回距离当前日期小于 1 个月的日期时间

xquery - "Canonical Path"XQuery 中的函数?

Java 构造函数

java - bufferedwriter 不写入文件

vb.net - 使用 vb.net,如何使用没有命名空间的类?

php - Laravel/PHP 命名空间路径的简写

Xslt 键函数的 Xquery 函数