我正在使用Xquery文件 - >让我们通过导入它来说file1.xq。
现在这个文件(file1.xq)在其中导入另一个文件file2.xq。
我不仅想使用file1.xq的功能,还想使用file2.xq的功能。
所以我尝试将两者都导入到我的实际xquery代码中(使用两个文件中的函数)但是我得到了一个重复的函数定义错误。
我在这里做错了什么?如何在我的Xquery代码中使用file2.xq中定义的Xquery函数? ESP。在这种情况下,file1.xq正在使用file2.xq的函数(它也是由我的xquery代码导入的)?
答案 0 :(得分:1)
您可能没有定义合适的命名空间。因此,使用了默认命名空间,如果在不同文件中有两个函数,它们将映射到同一个函数,并且应该发生重复的函数定义错误。 由于您没有提供任何示例代码或更详细的代码,因此很难猜测。
因此,假设您的file2.xq应使用
声明其命名空间module namespace _ = 'http://mycompany.org/file1';
然后,您可以使用
在此文件中定义您的功能declare function :my-function() { "Whatever" }
现在可以使用
在您的实际xquery代码文件中导入此模块import module namespace file1 = 'http://mycompany.org/file1';
file1:my-function()
您也可以使用
import module namespace file1 = 'http://mycompany.org/file1' at '/path/in/local/filesystem';
绝对指定file1.xq的位置。