В eXist 4.4 / XQuery 3.1 я выполняю преобразование XSL 2.0, используя transform:transform()
.В преобразовании я передаю параметр в преобразование XSL для Saxon, чтобы использовать его для доступа к информации в базе данных.
<param name="paramSaxondatapath" value="xmldb:exist:///db/apps/deheresi/data/"/>
Все отлично работает: Saxon извлекает узлы, необходимые из документов в eXist-DB и преобразовании XSLуспешно.
Теперь я пытаюсь выполнить то же самое, но из вне среды eXist-DB (локальный диск, использующий Oxygen).Таким образом, в документе XSLT я жестко закодировал параметр:
<xsl:param name="paramSaxondatapath">xmldb:exist:///db/apps/deheresi/data/</xsl:param>
Тем не менее, когда я запускаю этот файл XSLT локально (в Oxygen, локальный файл XSLT, Saxon-HE 9.6.0.7), Saxon выдает мнеисключение unknown protocol: xmldb
FODC0002: Exception thrown by URIResolver:
Malformed URL
xmldb:exist:///db/apps/deheresi/data/bibliography.xml
(base file:/Users/foo/Desktop/De_Heresi/deheresi_TEI/fo_dep_single.xsl):
unknown protocol: xmldb
Учитывая, что это передается Саксону идентичным образом (т. е. заключено в doc(concat(paramSaxondatapath,'somefile.xml')
), я удивлен, что это не реагирует одинаково оба раза.
Есть ли другой URI, который я должен использовать?
Большое спасибо.
РЕДАКТИРОВАТЬ: Любопытно, если я использую командную строку для преобразования (то есть не запускается кислородом), Саксон принимаетэто и выполняет преобразование.Похоже, что-то связано с кислородом ...