Helpful Information
 
 
Category: XML
MathML Formatting Problems

Right now I'm learning MathML, and am finding it very confusing. What I have now is a little page that shows the Pythagorean Theorem(sp?). Problem is, it isn't being formatted. I have downloaded the required fonts and it still doesn't work, so I figure it has to do with the code itself. Since I couldn't figure it out myself, I figured I'd ask the experts ;). Here's the code:


<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Pythagorean Theorem with MathML</title>
</head>
<body>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mrow>
<mi>c</mi>
<mo>=</mo>
</mrow>
<mrow>
<msqrt>
<mfenced>
<mrow>
<msup>
<mi>a</mi>
<mn>2</mn>
</msup>
</mrow>
<mrow>
<mo>+</mo>
</mrow>
<mrow>
<msup>
<mi>b</mi>
<mn>2</mn>
</msup>
</mrow>
</mfenced>
</msqrt>
</mrow>
</mrow>
</math>
</body>
</html>

Add a:
<?xml version="1.0"?>

At the top, and save it as .xml.

Remember, HTML does not include XML namespaces - therefore to invoke the XML parser (and in turn MathML parser), you need to give a mime-type of text/xml, application/xhtml+xml, etc (anything that invokes the XML parser).

BTW, all those <mrow>'s aren't necessary:



<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Pythagorean Theorem with MathML</title>
</head>
<body>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi> c </mi>
<mo> = </mo>
<msqrt>
<msup>
<mi> a </mi>
<mn> 2 </mn>
</msup>
<mo> + </mo>
<msup>
<mi> b </mi>
<mn> 2 </mn>
</msup>
</msqrt>
</math>
</body>
</html>


The MathML specs tell viewers to insert them during rendering as necessary.

Thanks! Works wonderfully!

Thanks for the notice about <mrow> elements. I was getting lost in them.

Happy coding! :)










privacy (GDPR)