transform:transform()
. 在转换中,我向XSL转换传递一个参数,供Saxon用来访问数据库中的信息。
<param name="paramSaxondatapath" value="xmldb:exist:///db/apps/deheresi/data/"/>
一切都很好:Saxon从eXist DB中的文档检索所需的节点,XSL转换成功。
外部
eXist数据库环境(本地驱动器,使用氧气)。因此,在XSLT文档中,我硬编码了参数:
<xsl:param name="paramSaxondatapath">xmldb:exist:///db/apps/deheresi/data/</xsl:param>
然而,当我在本地启动这个XSLT文件时(在Oxygen中,本地XSLT文件,Saxon he9.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
考虑到这是以相同的方式传递给Saxon的(即
doc(concat(paramSaxondatapath,'somefile.xml')
),我很惊讶这两次的反应都不一样。
我应该使用不同的URI吗?
非常感谢。
编辑:奇怪的是,如果我使用命令行进行转换(即不是由氧气触发),Saxon接受它并执行转换。它似乎和氧气有关。。。