This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
MathML tags in an attribute of an HTML EMBED tag ?
- To: <xsl-list at mulberrytech dot com>
- Subject: MathML tags in an attribute of an HTML EMBED tag ?
- From: Frédéric SCHWEBEL <schwebel at rfv dot insa-lyon dot fr>
- Date: Wed, 25 Oct 2000 15:03:41 +0200
- Reply-To: xsl-list at mulberrytech dot com
Hi folks,
I use the "cocoon package" (so Xalan as the XSL processor), but also test my
xsl with Instant Saxon 5.2. I have this in my XML file :
<FORMULE>
<MATH>... some mathml ... </MATH>
<FORMULE>
and I want to output this :
<EMBED TYPE="text/mathml" MMLDATA="
<math>...some mathml ...</math>" HEIGHT="75" WIDTH="200" />
to render MathML with the IBM techexplorer plug-in.
I checked many parts of the (great) daveP FAQ dealing with this stuff :
http://www.dpawson.freeserve.co.uk/xsl/cdata.html
http://www.dpawson.freeserve.co.uk/xsl/N7150.html
http://www.dpawson.freeserve.co.uk/xsl/N4554.html
I tried many different solutions, none works. Here are the three "general"
types of solutions I used :
****************
<xsl:template match="FORMULE">
<EMBED TYPE="text/mathml" MMLDATA="<xsl:apply-templates />
" HEIGHT="75" WIDTH="200" />
</xsl:template>
RESULT : "The value of attribute "MMLDATA" must not contain the '<'
character"
(result is the same if I put <xsl:text> before and after the
apply-tempaltes, with or without disable-output-escaping, and also if i
replace the apply-templates with <xsl:copy-of select="math" />)
****************
second serie of attempts :)
<xsl:template match="FORMULE">
<![CDATA[
<EMBED TYPE="text/mathml" MMLDATA="]]>
<xsl:copy-of select="math" />
<![CDATA[
" HEIGHT="75" WIDTH="200" /> ]]>
</xsl:template>
RESULT : I just get the string "<EMBED ..." in the output window (the < >
and " have been replaced with < > and ")
I get the same result if i put xsl:text disable-output-escaping="yes" before
each CDATA section EXCEPT that in the source of output I have this :
<?xslt-next-is-raw formatter-to-dom?> before the mathml starts (all the
mathml is in the source, but since the plug-in is not started...)
****************
third and last serie of attempts :
<xsl:template match="FORMULE">
<xsl:element name="embed">
<xsl:attribute name="TYPE">text/mathml</xsl:attribute>
<xsl:attribute name="HEIGHT">75</xsl:attribute>
<xsl:attribute name="WIDTH">200</xsl:attribute>
<xsl:attribute name="MMLDATA"><xsl:copy-of select="math" />
</xsl:attribute>
</xsl:template>
RESULT : this time, the plug-in starts but I get the message " Missing Math
ML root element" in the plug-in zone. Looking at the source, I see that all
MathML tags have been removed (both with saxon and Xalan) within the MML
data attribute !!!! Why ? the result is the same if I put the xsl-copy of
math in a param and then try to put <xsl:value-of select="$parameter"> for
the value of MMLDATA.
**************
By the way, the ouput method is "text/html/loose" for my stylesheet. I tried
"text" but the rest of the doc don't work if I do that...
So I really need the help of somebody, here... Thanks in advance for any
reply.
There is still the solution of putting the MathML in a separate file and the
put an SRC attribute for the EMBED tag instead of MMLDATA with the name of
the .mml file, but I really would like to avoid it...
Frederic
PS : I don't know if somebody might be interested in it, but the XSL sheet I
made last last year to translate MathML into French Braille is available at
http://handy.univ-lyon1.fr/projets/bramanet/
I prefer working for blind people : they just need ASCII chars, they don't
need plug-ins !
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list