0

我正在使用 Xquery 文件--> 让我们通过导入来说 file1.xq。

现在这个文件 (file1.xq) 在其中导入另一个文件 file2.xq。

我不仅要使用file1.xq的功能,还要使用file2.xq的功能。

因此,我尝试将两者都导入到我的实际 xquery 代码中(使用两个文件中的函数),但出现重复的函数定义错误。

我在这里做错了什么?如何在我的 Xquery 代码中使用 file2.xq 中定义的 Xquery 函数?特别是。在这种情况下,file1.xq 正在使用 file2.xq 的功能(我的 xquery 代码也导入了它)?

4

1 回答 1

2

您可能没有定义正确的命名空间。因此,使用了默认命名空间,如果您在不同的文件中有两个函数,它们将映射到同一个函数,并且应该出现重复的函数定义错误。由于您没有提供任何示例代码或更详细的代码,因此很难猜测。

所以假设你的 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 的位置。

于 2012-10-28T16:41:34.603 回答