I am a bit puzzled and don't know where to look for.
Here is a stylesheet:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE stylesheet [
<!ENTITY foo SYSTEM "foo.xml">
]>
<xsl:styleshe et version="1.0"
xmlns:xsl="http ://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"
indent="yes">
</xsl:output>
<xsl:template match="/">
<xsl:apply-templates select="node()| @*"/>
</xsl:template>
<xsl:template match="node()|@ *">
<xsl:copy>
<xsl:apply-templates select="node()| @*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/foohere">
&foo;
</xsl:template>
</xsl:stylesheet>
Now, everything happens appropriately. The first two template rules do
the identity transformation,
then when "/foohere" is found, the foo.xml is added to the result tree
having resolved the entity. All is well.
But in the result tree, I see that there are some weird things that
happen:
- for the portion that comes from foo.xml all occurrences of "${xyz}"
are replaced by "$".
How can I make it take the foo.xml "verbatim"? I have already tried
<xsl:text disable-output-escaping="yes"& foo; </xsl:text>, but it does
not work.
Thanks for help.
DB