xsl-list
[Top] [All Lists]

SV: generating entities in XSL, < becomes &lt;

2002-11-05 01:54:39
Thanks for a quick reply.

So you are saying that if I make a seperate document with the entities
and then merge the resulting XML/SVG document with the generated
entities then it would work?

-Christer

-----Opprinnelig melding-----
Fra: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com [mailto:owner-xsl-
list(_at_)lists(_dot_)mulberrytech(_dot_)com] På vegne av 
Jarno(_dot_)Elovirta(_at_)nokia(_dot_)com
Sendt: 5. november 2002 09:27
Til: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Emne: RE: [xsl] generating entities in XSL, < becomes &lt;

Hi,

I am having problems with an XSL stylesheet. I keep getting
&lt; instead
of "<" signs. My problem is with the XSL when it is
generating entities.
Is there any other way of generating entities in a XSL
besides the one I
have used? My method works if I stream the result directly to the
client(Internet Explorer SVG plugin) but not when I save the
result in a
DocumentFragment and want to process it further. Any examples of
generating entities would be most helpful!

-Christer

<xsl:variable name="q">"</xsl:variable>
<xsl:variable name="s"><![CDATA[<]]></xsl:variable>
<xsl:variable name="e"><![CDATA[>]]></xsl:variable>
<xsl:variable name="sf"><![CDATA[[]]></xsl:variable>
<xsl:variable name="ef"><![CDATA[]]]></xsl:variable>
<xsl:variable name="a"><![CDATA[&]]></xsl:variable>
<xsl:variable name="n"><![CDATA[&#216;]]></xsl:variable>
<xsl:variable name="qs"><![CDATA[']]></xsl:variable>

<xsl:value-of disable-output-escaping="yes"
  select="concat($s,'!DOCTYPE svg PUBLIC ',
  $q,'-//W3C//DTD SVG 20001102//EN',$q,' ',

$q,'http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102
.dtd',$q,$
sf)" />

You are aware of the xsl:output and doctype-public and doctype-system
attributes?

  <xsl:for-each select="data/DEFS/ROWSET/type">
    <xsl:value-of disable-output-escaping="yes"
select="concat($s,'!ENTITY ',@id,' ',$qs)" />
    <xsl:copy-of select="*"/>
    <xsl:value-of disable-output-escaping="yes"
select="concat($qs,'>')"
/>
  </xsl:for-each>
<xsl:value-of disable-output-escaping="yes" select="concat($ef,$e)"
/>

Unfortenately XSLT doesn't support generating DTD internal subsets.
You
should probably try another tool to generate the DTD and then append
the
actual XML document to it.

Cheers,

Jarno

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


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



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