Can someone please explain why I need to use {} bracket in the href of
xsl:results-document?
I'm familiar with using {} as a shortcut for writing values into output
attributes but I'm not sure why I can't do something like:
<xsl:result-document href="string($vFilePath) ...
Saxon (7.4) gives me the following error:
"the system identifier of the principal output file is unknown"
No doubt I totally misunderstand the {} :-)
Below are some examples of xsk:result-document which have confused me.
Thanks for your help.
cheers
Malcolm
XML:
<?xml version="1.0" encoding="UTF-8"?>
<filesToMake>
<file path="c:/temp"/>
<file path="c:/temp/temp"/>
</filesToMake>
XSLT:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<!-- -->
<xsl:variable name="fileSep" select="system-property('file.separator')"/>
<!-- -->
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<!--
This works..
<xsl:template match="file">
<xsl:variable name="vFileName" select="concat( 'file:///' , @path ,
$fileSep , 'test.xml' )"/>
<xsl:result-document href="{$vFileName}" >
<x>output..</x>
</xsl:result-document>
</xsl:template>
-->
<!--
This does not work.... Saxon says : The system identifier of the principal
output file is unknown..
<xsl:template match="file">
<xsl:variable name="vFileName" select="concat( 'file:///' , @path ,
$fileSep , 'test.xml' )"/>
<xsl:result-document href="$vFileName" >
<x>output..</x>
</xsl:result-document>
</xsl:template>-->
<!--
This works..
<xsl:template match="file">
<xsl:result-document href="{'file:///'}{@path}{$fileSep}{'test.xml'}" >
<x>output..</x>
</xsl:result-document>
</xsl:template>
-->
<!--
This does not work.... Saxon says : The system identifier of the principal
output file is unknown..
<xsl:template match="file">
<xsl:variable name="vFileName" select="concat( 'file:///' , @path ,
$fileSep , 'test.xml' )"/>
<xsl:result-document href="string($vFileName)" >
<x>output..</x>
</xsl:result-document>
</xsl:template>-->
<!--
This works...
-->
<xsl:template match="file">
<xsl:result-document href="file:///{@path}\test.xml" >
<x>output..</x>
</xsl:result-document>
</xsl:template>
<!--
This does not work.... Saxon says : The system identifier of the principal
output file is unknown..
<xsl:template match="file">
<xsl:result-document href="concat( 'file:///' , @path , $fileSep ,
'test.xml' )">
<x>output..</x>
</xsl:result-document>
</xsl:template>-->
</xsl:stylesheet>
_________________________________________________________________
Tired of spam? Get advanced junk mail protection with MSN 8.
http://join.msn.com/?page=features/junkmail
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list