我已经使用 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/