xsl-list
[Top] [All Lists]

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

2003-04-22 07:49:44
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:///'}{(_at_)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:///{(_at_)path}\test(_dot_)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



<Prev in Thread] Current Thread [Next in Thread>