<html>
<body>
Well, the task is pretty simple, but I can't get anything working.
<br><br>
I want to parse in an xhtml document containing mathml with all the
entitities defined like alpha and beta. This should then be transformed
using xslt into another xml-document.<br>
The test-xhtml document is shown below:<br>
----<br>
<i>&lt;?xml version=&quot;1.0&quot;
encoding=&quot;ISO-8859-1&quot;?&gt;<br>
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.1 plus MathML
2.0//EN&quot;<br>
&nbsp;&quot;<a href="http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" eudora="autourl">http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd</a>&quot;
[&lt;!ENTITY mathml
&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;]&gt;<br>
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;<br>
&lt;body&gt;&nbsp;&nbsp; <br>
&nbsp;&nbsp; &lt;math
xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mrow&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;mi&gt;&amp;#950;&lt;/mi&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/mrow&gt;<br>
&nbsp;&nbsp; &lt;/math&gt;<br>
&lt;/body&gt;<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>&lt;/html&gt;<br>
</i>----<br><br>
Here is what I've tryed:<br><br>
Parsing the document in using a SAXBuilder with the default
settings:<br>
-----<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>SAXBuilder builder = new
SAXBuilder();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileInputStream stream =
null;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (file.exists()) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try
{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
stream = new FileInputStream(file);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
InputStreamReader reader = new InputStreamReader(stream);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
builder.setValidation(false);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
try {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
doc = builder.build(reader);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
} catch (Exception e) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
e.printStackTrace();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; }<br>
</i>---<br>
This results in this error:<br>
<i>&nbsp; &quot;org.jdom.IllegalTargetException: The target
&quot;IS10744:arch&quot; is not legal for JDOM/XML Processing
Instructions: Processing instruction targets cannot contain
colons.&quot;<br><br>
</i>Then I tryed to trick the SAXBuilder so that the DTD's are not used
by setting the entityResolver to an entityResolver, that doesn't do
anything.<br>
&nbsp;---<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab><i>SAXBuilder
builder = new SAXBuilder();<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>builder.setEntityResolver(new
NoOpEntityResolver());<br>
</i>---<br>
This results in some output to System.err:<br>
<i><x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>&quot;[Fatal
Error] :1:66: White spaces are required between publicId and
systemId.&quot;<br>
</i>But the transformation seems to occur.<br><br>
I tryed writing the parsed document to a file. This file doesn't contain
the entity: <i>&amp;#950;</i> <br>
---<br>
<i>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;<br>
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.1 plus MathML
2.0//EN&quot;
&quot;http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd&quot;&gt;<br>
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;<br>
&lt;body bgcolor=&quot;white&quot;&gt;<br>
&nbsp;&nbsp;&nbsp; Hello world<br>
&nbsp;&nbsp; &lt;math
xmlns=&quot;http://www.w3.org/1998/Math/MathML&quot;&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;mrow&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;mi&gt;?&lt;/mi&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/mrow&gt;<br>
&nbsp;&nbsp; &lt;/math&gt;<br>
&lt;/body&gt;<br>
<x-tab>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</x-tab>&lt;/html&gt;<br>
---<br>
</i>That could be due to an encoding mistake somewhere.<br><br>
So as you can tell I've been struggling with this issue for quite some
time getting nowhere. Is it really that difficult parsing in an xhtml
document and transforming it using xslt?<br><br>
How can I transform an xhtml document containing mathml into another xml
document using xslt?<br><br>
Regards<br><br>
<x-sigsep><p></x-sigsep>
Morten Andersen<br>
Master of applied mathematics and computer science<br>
Associate professor<br><br>
The Maersk Institute of Production technology at Southern Danish
University
<a href="http://www.mip.sdu.dk/" eudora="autourl">www.mip.sdu.dk<br>
</a>Campusvej 55<br>
DK-5230 Odense M<br>
Denmark<br>
+45 65 50 36 54<br>
+45 61 71 11 03<br>
Jabber id: hat@jabber.dk<br>
</body>
</html>