Re: [xsl] referencing a stylesheet within xsl:document

Subject: Re: [xsl] referencing a stylesheet within xsl:document
From: Joerg Heinicke <joerg.heinicke@xxxxxx>
Date: Wed, 18 Dec 2002 03:24:55 +0100
Hello Shawn,

you have 2 problems:

1. xsl:document is not part of XSLT 1.0, only of XSLT 1.1, which is no longer developed ( You won't find any XSLT processors, that know XSLT 1.1. The only one I know is Saxon in some versions.
Alternative for XSLT 1.0 are different processor specific extension functions like Xalan redirect.

2. <?xml-stylesheet type="text/xsl" href="../display.xsl"?>
That's a processing instruction. If you write it in this way in your XSLT, it's used (or not) there and not in the output. To create one in the result tree, use
<xsl:processing-instruction name="xml-stylesheet">type="text/xsl" href="../display.xsl"</xsl:processing-instruction>.



Shawn O. McKenzie wrote:
I am splitting multiple xml documents into smaller files using xsl:document. Each of the output files needs to include a reference to another transform to display in a browser. What I would like to do is someting like:

<xsl:for-each select="namespace/class">
<xsl:variable name="class" select="@name"/>
<xsl:variable name="file" select="concat($namespace, '.', $class, '.xml')"/>

<xsl:document method="xml" href="{$file}"> <?xml-stylesheet type="text/xsl" href="../display.xsl"?>

       <class><xsl:copy-of select="@name"/>
         <xsl:call-template name="hierarchy"/>
         <xsl:call-template name="mergefiles"/>


However, it does not pick up the <?xml-stylesheet type="text/xsl" href="../display.xsl"?> line. I tried putting this content within an xsl:text element but that complained about the content of the element. I also tried changing < and > to their related entity refs, but that just pulled in the entity refs.

It would seem that you should be able to do this in one of the attributes of xsl:document, but I'm not seeing it.

XSL-List info and archive:

Current Thread