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

Subject: RE: [xsl] using {} brackets with xsl:result-document href (Saxon 7.4)
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Tue, 22 Apr 2003 19:48:27 +0100
The href attribute of xsl:result document is an attribute value
template, not an XPath expression. If you write href="$x" that means you
want the URI to be "$x", if you write href="{$x}" that means you want
the URI to be whatever the value of variable x is.

If the value of the href attribute is a relative URI, it's interpreted
relative to the base URI of the principal output document. This is known
when you use the -o option on the Saxon command line, but is unknown if
you send the result to standard output.

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx 

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> malcolm macaulay
> Sent: 22 April 2003 15:50
> To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] using {} brackets with xsl:result-document 
> href (Saxon 7.4)
> 
> 
> 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


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread