In eXist 4.4/XQuery 3.1 I perform an XSL 2.0 transformation using transform:transform()
. In the transformation I pass a parameter into the XSL transformation for Saxon to use to access information in the database.
<param name="paramSaxondatapath" value="xmldb:exist:///db/apps/deheresi/data/"/>
Everything works great: Saxon retrieves the nodes needed from documents in eXist-DB and the XSL transformation is successful.
Now, I am trying to do execute the same but from outside the eXist-DB environment (local drive, using Oxygen). Thus, in the XSLT document I have hardcoded the parameter:
<xsl:param name="paramSaxondatapath">xmldb:exist:///db/apps/deheresi/data/</xsl:param>
Yet when I fire this XSLT file off locally (in Oxygen, local XSLT file, Saxon-HE 9.6.0.7), Saxon throws me an exception 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
Considering that this is passed to Saxon in identical manner (ie wrapped in doc(concat(paramSaxondatapath,'somefile.xml')
), I'm surprised this isn't reacting the same way both times.
Is there a different URI I should be using?
Many thanks.
EDIT: Curiously, if I use command line for the transformation (ie not triggered by Oxygen), Saxon accepts it and performs the transformation. It appears to have something to do with Oxygen...