Saxon 8 - файл XQuery - вызов Java - PullRequest
0 голосов
/ 24 августа 2018

Теперь у меня есть эта ошибка:

Error on line 10 of *module with no systemId*:
  FODC0005: Exception thrown by URIResolver: Invalid relative URI
  {D:\Users\***\workspace\**...}: Illegal character in opaque part at index 2:
  D:\Users\***\workspace\***/JDPR/config/Rules.xml
Error at xsl:copy-of on line 13 of *module with no systemId*:
  FODC0005: Exception thrown by URIResolver: Invalid relative URI
  {D:\Users\***\workspace\**...}: Illegal character in opaque part at index 2:
  D:\Users\***\workspace\***/JDPR/config/Rules.xml
; SystemID: *module with no systemId*; Line#: 13; Column#: -1
net.sf.saxon.trans.DynamicError: net.sf.saxon.trans.DynamicError: Exception thrown by URIResolver
    at net.sf.saxon.functions.Document.makeDoc(Document.java:275)

Связанная с XQuery часть:

(:declare namespace dpr="java:util.DPRConfigurationLoader";:)
declare namespace dpr="java:com.*****.common.util.DPRConfigurationLoader";
declare variable $rules as node()* := doc(dpr:getApplicationProperty('Common','RulesFileLocation'))//category;

Если я запускаю этот xquery, как показано здесь, он выдает мне ошибку.Если я раскомментирую первую строку и прокомментирую вторую строку, ошибка не появится.

В программе Java я изменяю файл Xquery и удаляю строку «com. *****. Common».так что строка становится такой же, как и закомментированная строка.

Так что я не понимаю, почему одна версия работает нормально, а другая, которая на момент выполнения одинакова, - нет.

Если кто-то обнаружит, в чем проблема ...: -)

1 Ответ

0 голосов
/ 24 августа 2018

Вы указываете имя файла Windows (D:\Users\***\workspace\**...} для интерфейса, который ожидает URI.

Я не знаю, что делает dpr:getApplicationProperty(), но если есть две его версии в разных пространствах имен, то они, вероятно, делают разные вещи, поэтому неудивительно, что одна из них успешна, а другая - нет.

Аргументом функции doc() должен быть URI, а не имя файла Windows.

...