环境:eXist-db 4.2.1,XQuery 3.1,XSLT 2.0
在eXist-db中,我正在加载一个XSLT文件,该文件包括对eXist中集合的引用(以便使用键对在那里找到的文档执行搜索)。此引用似乎引发了撒克逊人的错误。
Exception while transforming node: Exception thrown by URIResolver
/db/apps/deheresi/data/
/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()
函数。
非常感谢。