xsl-list
[Top] [All Lists]

Re: Beginner: adding xmlns:mml attribute

2003-01-08 09:47:22
Hi Roel,

I'm trying to output the following:

<HTML XMLNS:m="http://www.w3.org/1998/Math/MathML";>
<head>
</head>
</html>

That should be:

<html xmlns:m="http://www.w3.org/1998/Math/MathML";>
  <head>
  </head>
</html>

XML is case-sensitive, so you need the <html> and </html> to match,
and the xmlns of xmlns:m should be in lowercase. The page you quote:

as per http://www.dessci.com/en/products/mathplayer/authoring.htm.

is wrong to put xmlns in capitals.

My first, naive attempt was

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
   <xsl:template match="document">
     <html xmlns:m="http://www.w3.org/1998/Math/MathML";>
     <xsl:element name="html" 
namespace="http://www.w3.org/1998/Math/MathML"/>
       <head>
       </head>
     </html>
</xsl:stylesheet>

but that gives me simply

I'm surprised that it gives you anything at all. It's not well-formed:
there's no </xsl:template> end tag for the <xsl:template> that you
have. Assuming that the stylesheet you're actually using does have an
end tag, I'm very surprised that it gives you:

<html>
<head>
</head>
</html>

What the stylesheet gives me, with Saxon 6.5.2, from an input document
with an empty <document> element, is:

<html xmlns:m="http://www.w3.org/1998/Math/MathML";>
   <html xmlns="http://www.w3.org/1998/Math/MathML";></html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   </head>
</html>

which is close to what you're after, except that it has an extra
<html> element -- one that you've created with an <xsl:element>
element in your stylesheet. (The <meta> element is created
automatically because you're creating HTML, by the way.)

FWIW, I recommend that you place the namespace declaration for the
MathML namespace in the <xsl:stylesheet> start tag rather than in the
<html> start tag. That will ensure that the MathML namespace is in
scope throughout your stylesheet.

<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                xmlns:m="http://www.w3.org/1998/Math/MathML";>
   <xsl:template match="document">
     <html>
       <head>
       </head>
     </html>
   </xsl:template>
</xsl:stylesheet>

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


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