eXist-加载XSLT collection()-URIResolver引发的异常

时间:2018-10-22 17:48:30

标签: xquery xslt-2.0 saxon exist-db

环境: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文件,并将the absolute path传递到数据文件夹:

<param name="paramDatauri" 
  value="xmldb:exist:///db/apps/deheresi/data/"/>

在XSLT文件中,该参数被接收并注入到变量中:

 <xsl:variable name="coll" 
  select="collection(concat($paramDatauri,'?select=*.xml'))"/>

我已经研究了Saxon might need的可能参数,但是还没有找到可以解决此问题的参数。

编辑#1:我试图在XQuery transform()中传递属性

 <attributes>
    <attr name="paramSax" value="COLLECTION_URI_RESOLVER"/>
 </attributes>

每个Saxonica documentation,但我收到了消息

 `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

这是我第一次尝试在eXist-db的XSLT中使用collection()函数。

非常感谢。

0 个答案:

没有答案