[xsl] using {} brackets with xsl:result-document href (Saxon 7.4)

Subject: [xsl] using {} brackets with xsl:result-document href (Saxon 7.4)
From: "malcolm macaulay" <malcolm_xslt_list@xxxxxxxxxxx>
Date: Wed, 23 Apr 2003 02:49:44 +1200
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



Current Thread