The first thing I see is that you need to include the mathml namespace in
your customization layer

*<xsl:stylesheet
     version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
     xmlns:mml="http://www.w3.org/1998/Math/MathML**";
     xmlns:xi="*http://www.w3.org/2001/XInclude*";>*
*
*Elements for the MathML namespace should be prefixed with the prefix you
chose (mml in the case above). Same thing with the XIncllude elements, they
have to be on their own namespace (xi)
*
*Each ID has to be unique. Otherwise when inserting the MathML equation the
XSLT processor will throw an error for duplicate IDs

Using the code you provide below I would do something like this:*
*
<inlineequation id="Eq_0005">
    <inlinemediaobject>
      <imageobject>
        <imagedata fileref="math/Eq_0005.gif"/>
      </imageobject>
      <textobject>
         <xi:include href="math/Eq_005.xml/>
      </textobject>
    </inlinemediaobject>
</inlineequation>
*
*The processor will use the first element that it can handle (as explained
in http://docbook.org/tdg51/en/html/inlinemediaobject.html) so the order in
which you put them may be important.

Using xincludes may also change the way in which you process your
documents. Look at Bob Stayton's book for how to pre-process your document
with xincluded content (http://www.sagehill.net/docbookxsl/Xinclude.html)


On Wed, Jun 13, 2012 at 1:52 AM, Zoltán János Jánosi <[email protected]>wrote:

> Hi all!
>
> *My question:
> Is there any way (with XSLT) to dynamically pull in MathML files (by their
> ID) and put them into the XML/HTML files?*
>
> *The situation is the following:*
>
>    - I have a DocBook 4.4 XML file with equation objects in it.
>    - Every equation object has a unique ID.
>    - For every equation ID belongs to 2 files, one MathML 2.0 XML file
>    and a graphics version.
>    - Both filename is constructed from the equation ID+extension.
>    - The graphics version is linked by the imagedata tag.
>
>
> *The source equation looks like this:* (DocBook 4.4)
> *<para>
> <inlineequation id="Eq_0005">
>     <inlinemediaobject>
>       <imageobject>
>         <imagedata fileref="math/Eq_0005.gif"/>
>       </imageobject>
>     </inlinemediaobject>
> </inlineequation>
> <para>*
>
> *I'd like to dynamically transform the equation object to include the
> MathML version rather than the graphics version. *I tried to transform
> the DocBook document into XHTML and HTML5, and use xinclude to include the
> MathML XML files, but didn't succeed yet.
> *It should look something like this at the end:* (I think)
> *<p>
> <math>
>     <mrow>
>         <mi>a</mi>
>         <mo>&InvisibleTimes;</mo>
>         <msup>
>         ...
> </math>
> </p>*
> **
> *What I have tried yet:
> Here is a simple XSLT to get the equation ID:*
> *<?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0" xmlns:xsl="
> http://www.w3.org/1999/XSL/Transform";>
>  <xsl:output method="html"/>
>  <xsl:template match="inlineequation">
>   The ID of equation is <xsl:value-of select="@id"/>
>  </xsl:template>
> </xsl:stylesheet>*
>
> Then I tried to use the xinclude and put into the XSLT but none of them
> seemed to work.
>
> Any ideas appreciated.
> Thanx in advance!
>

Reply via email to