[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

HTML5 and MathML and namespaces, oh my

Subject: HTML5 and MathML and namespaces, oh my
From: "Chris Papademetrious christopher.papademetrious@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 4 Nov 2020 12:43:48 -0000
 HTML5 and MathML and namespaces
Hi all,

I have an HTML5-namespaced document containing MathML-namespaced <math>
content:


<!DOCTYPE html>
<html  xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Equations</title>
  </head>
  <body>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mrow>
        <mspace/>
      </mrow>
    </math>
  </body>
</html>


I am trying to create an XSLT transformation that modifies these islands of
MathML while leaving the surrounding content untouched. As a test, I try
wrapping <mspace> elements in <mrow>:


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:mml="http://www.w3.org/1998/Math/MathML"
    xpath-default-namespace="http://www.w3.org/1998/Math/MathML"
    exclude-result-prefixes="xs"
    version="2.0">

  <!-- baseline identity transform -->
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

  <!-- xpath-default-namespace is the MathML namespace -->
  <xsl:template match="mspace">
    <mrow>
      <xsl:copy-of select="."/>
    </mrow>
  </xsl:template>

</xsl:stylesheet>


However, the output has namespace references that are redundant with their
enclosing context:


<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Equations</title>
  </head>
  <body>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <mrow>
        <mrow xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns="">
          <mspace xmlns="http://www.w3.org/1998/Math/MathML"/>
        </mrow>
      </mrow>
    </math>
  </body>
</html>


I've been reading about XSLT and namespaces for hours. This is the best
resource I've found:

http://www.lenzconsulting.com/namespaces-in-xslt/

and it got me to this point. My questions are:


  1.  Why would the XSLT serializer write explicit namespace references that
aren't needed by context?


  1.  Isn't the point of namespaces that everything is fully qualified
internally, then the output can adjust accordingly?


  1.  How do I get a clean <math> island of MathML content without namespace
stuff cluttering up its contents?

Thanks in advance!

-----
Chris Papademetrious
Tech Writer, Implementation Group
(610) 628-9718 home office
(570) 460-6078 cell

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.