Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > XML > MathML weirdness

Reply
Thread Tools

MathML weirdness

 
 
Fred
Guest
Posts: n/a
 
      05-17-2006
I'm experimenting with MathML, and have run into difficulty.

Given the simple XML:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE component SYSTEM "mathml2.dtd">
<mathDisplay>
<math>
<msub>
<mi>z</mi>
<mn>2</mn>
</msub>
</math>
</mathDisplay>
and the simple XSLT stylesheet given below, I expect the output
<?xml version="1.0" encoding="utf-8"?>
<mathML><xmathDisplay><xmath><xmsub><xmi>z</xmi>
<xmn>2</xmn></xmsub></xmath></xmathDisplay></mathML>
Instead, I get
<?xml version="1.0" encoding="utf-8"?>
<mathML><xmathDisplay>z2</xmathDisplay></mathML>
I get the results I expect if I delete the DOCTYPE line from the xml
file.

I can also get the results I expect if I change the names of the MathML
elements to, say, <a>, <b>, <c>, ...

In what way is the behavior of an XSLT stylesheet dependent upon the
details
of an XML document's doctype?

Thanks!

The spreadsheet:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlnssl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:strip-space elements="*"/>
<xslutput method="xml" encoding="utf-8"/>
<xsl:template match="/">
<mathML>
<xsl:apply-templates/>
</mathML>
</xsl:template>
<xsl:template match="mathDisplay">
<xmathDisplay>
<xsl:apply-templates/>
</xmathDisplay>
</xsl:template>
<xsl:template match="math">
<xmath>
<xsl:apply-templates/>
</xmath>
</xsl:template>
<xsl:template match="msub">
<xmsub>
<xsl:apply-templates/>
</xmsub>
</xsl:template>
<xsl:template match="mi">
<xmi>
<xsl:apply-templates/>
</xmi>
</xsl:template>
<xsl:template match="mn">
<xmn>
<xsl:apply-templates/>
</xmn>
</xsl:template>
</xsl:stylesheet>

 
Reply With Quote
 
 
 
 
Joe Kesselman
Guest
Posts: n/a
 
      05-17-2006
Try it without specifying the DTD. If that produces the right output,
check whether the MathML DTD is automatically setting default namespaces
for those elements. If so, your stylesheet has to be made namespace-aware.

 
Reply With Quote
 
 
 
 
Fred
Guest
Posts: n/a
 
      05-17-2006
Adding xmlns:m="http://www.w3.org/1998/Math/MathML" to xsl:stylesheet
and prefixing all the MathML element names in the xsl:templates with
"m:" worked. Thanks!

I don't quite understand why it's necessary to specify the namespace if
one isn't going to be using the prefixed form of the element names in
the XML documents ... nor does a quick scan of Kay's book help. Could
you point me to an explanation of this phenomenon?

Thanks again,
Fred

 
Reply With Quote
 
Joe Kesselman
Guest
Posts: n/a
 
      05-17-2006
Fred wrote:
> I don't quite understand why it's necessary to specify the namespace if
> one isn't going to be using the prefixed form of the element names in
> the XML documents


The meaningful thing isn't the prefix, or lack of one -- it's whether
the element and/or attribute is bound to a namespace. In your case, the
DTD is indeed asserting such a binding, via a default namespace
declaration (xmlns=).

XPath, and XSLT, are always namespace-aware. This means all element and
attribute names they refer to have to be in the correct namespace, or
they won't match. Since XPath 1.0 has no concept of default namespaces
in its own syntax, that means that the only way to refer to namespaced
names is to use a prefix bound to the correct namespace.

Don't confuse syntax and semantics. Prefixes are syntax. Namespaces are
the semantic they represent.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
XMLBeans MathML presentation oulan bator Java 1 12-14-2005 04:20 PM
MathML in Java Sam Hwang Java 1 09-09-2005 07:02 AM
MathML and LiveConnect applet DKM Java 1 06-10-2005 03:58 PM
Tkinter WEIRDNESS or Python WEIRDNESS? steve Python 4 03-13-2005 12:34 AM
MathML =?Utf-8?B?SmVyZW15?= ASP .Net 1 05-09-2004 04:41 PM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57