xquery (eXist-db) - импортированный модуль не найден - PullRequest
0 голосов
/ 11 октября 2018

У меня есть файл «globalvar.xql», который содержит то, что, я надеюсь, может быть центральным документом для всех моих неизменяемых переменных (действительно параметров).

Чтобы использовать их, я понимаю, что ядолжен объявить / импортировать модуль в любой другой документ, который будет их использовать.В этом случае я хочу использовать их в функциях, найденных в "person.xql".Таким образом, я попробовал объявление:

import module namespace globalvar="/db/apps/deheresi/modules/globalvar.xqm";

Но я получаю сообщение об ошибке при проверке:

Cannot compile xquery: exerr:ERROR error found while loading module globalvar: Error while loading module /db/apps/deheresi/modules/globalvar.xqm: namespace URI declared by module (/db/apps/deheresi/modules/globalvar) does not match namespace URI in import statement, which was: /db/apps/deheresi/modules/globalvar.xqm

Ошибка, код и каталог изображены ниже.

Я пытался подражать коду, найденному в демоверсиях eXist-db, и просматривал другие ресурсы, но ошибка меня озадачивает.

Большое спасибо.

Screen shot of code and error

1 Ответ

0 голосов
/ 11 октября 2018

В объявлении импорта вашего модуля вы объединили URI пространства имен целевого модуля и URI местоположения.

Чтобы исправить это, вам нужно (1) добавить URI пространства имен, в котором у вас есть URI местоположения, (2) добавить предложение at и (3) переместить URI местоположения в егоправильное местоположение после пункта at.

Другими словами, это должно выглядеть следующим образом:

import module namespace globalvar="globalvar-namespace-uri" at "/db/apps/deheresi/modules/globalvar.xqm";

Конечно, "globalvar-namespace-uri" - это просто заполнитель для URI пространства имен целевого модуля.Он должен соответствовать URI пространства имен, определенному в целевом модуле.

...