eXist - загрузка коллекции XSLT () - Исключение, выданное URIResolver - PullRequest
0 голосов
/ 22 октября 2018

Среда: 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.

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

...