环境:eXist-db 4.2.1,XQuery 3.1,XSLT 2.0
我想使用eXist的transform:transform函数,将以下参数传递给XSLT文档:
let $xsltransform := transform:transform(
$currentdoc,
concat($globalvar:URIstyles,
"document_style.xsl"),
(<parameters>
<param name="paramPersonurl"
value="{$globalvar:URLperson}"/>
<param name="paramPlaceurl"
value="{$globalvar:URLplace}"/>
<param name="paramDocurl"
value="{$globalvar:URLdoc}"/>
</parameters>))
在使用它们之前,我是否必须在XSLT文件中“声明”这些参数?像这样:
<!-- parameters coming from eXist -->
<xsl:param name="paramPersonurl"/>
<xsl:param name="paramPlaceurl"/>
<xsl:param name="paramDocurl"/>
或者我可以直接在XSLT中使用它们,例如:
<xsl:value-of select="$paramPersonurl"/>
非常感谢。
答案 0 :(得分:4)
答案是“是”。您必须声明它们,否则它实际上不是有效的XSLT文档。
(从理论上讲,即使eXist确实自动添加了参数,还是最好声明它们,因为如果您希望将来更改技术,则希望XSLT在其他地方可重复使用)