Среда: eXist-db 4.2.1, XQuery 3.1, XSLT 2.0
В eXist-db я загружаю XSLT-файл, который включает ссылку на коллекцию в eXist (чтобы выполнить поиск подокументы найдены там, используя ключ).Эта ссылка, похоже, выдает ошибку от Саксона.
Exception while transforming node: Exception thrown by URIResolver
- Документы XML расположены по адресу
/db/apps/deheresi/data/
- Документы XSLT расположены по адресу
/db/apps/deheresi/data/styles
В функции преобразования я передаю параметр из XQuery в файл XSLT для абсолютный путь к папке данных:
<param name="paramDatauri"
value="xmldb:exist:///db/apps/deheresi/data/"/>
InXSLT-файл, этот параметр получен и введен в переменную:
<xsl:variable name="coll"
select="collection(concat($paramDatauri,'?select=*.xml'))"/>
Я рассмотрел возможные параметры, которые могут понадобиться Saxon , но я не определил ни одного, который мог бырешить эту проблему.
РЕДАКТИРОВАТЬ # 1: я пытался передать атрибут в XQuery transform ()
<attributes>
<attr name="paramSax" value="COLLECTION_URI_RESOLVER"/>
</attributes>
за Saxonica документации , но я получаюсообщение
`Unable to set up transformer: Unknown configuration property`
Я не знаю, является ли это избыточным / ненужным, или я неправильно настроил атрибут.
РЕДАКТИРОВАТЬ # 2: Я пытался жестко закодировать абсолютпуть в файл XSL:
<xsl:variable name="coll"
select="collection('xmldb:exist:///db/apps/deheresi/data/?select=*.xml')"/>
а также относительный путь:
<xsl:variable name="coll"
select="collection('/db/apps/deheresi/data/?select=*.xml')"/>
Всегда возвращатьта же ошибка Exception thrown by URIResolver
.
Это первый раз, когда я пытался использовать функцию collection()
в XSLT в eXist-db.
Большое спасибо.