为MathML声明XML名称空间

时间:2014-09-20 19:15:17

标签: xml xhtml mathml

在我的网站的这个页面上:http://docs.gl/gl4/glBlendEquation

我有一些看起来像的代码:

        <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">

            <mml:mfenced open="(" close=")">
                <mml:msub><mml:mi mathvariant="italic">R</mml:mi>
                <mml:mi mathvariant="italic">s</mml:mi>
                </mml:msub>
                <mml:msub><mml:mi mathvariant="italic">G</mml:mi>
                <mml:mi mathvariant="italic">s</mml:mi>
                </mml:msub>
                <mml:msub><mml:mi mathvariant="italic">B</mml:mi>
                <mml:mi mathvariant="italic">s</mml:mi>
                </mml:msub>
                <mml:msub><mml:mi mathvariant="italic">A</mml:mi>
                <mml:mi mathvariant="italic">s</mml:mi>
                </mml:msub>
            </mml:mfenced>
        </mml:math>

在其他地方看起来像:

                    <math overflow="scroll">

                        <mrow>
                            <mi mathvariant="italic">Rr</mi>
                            <mo>=</mo>
                            <mrow>
                                <msub><mi mathvariant="italic">R</mi>
                                <mi mathvariant="italic">s</mi>
                                </msub>
                                <mo>⁢</mo>
                                <msub><mi mathvariant="italic">s</mi>
                                <mi mathvariant="italic">R</mi>
                                </msub>
                                <mo>+</mo>
                                <msub><mi mathvariant="italic">R</mi>
                                <mi mathvariant="italic">d</mi>
                                </msub>
                                <mo>⁢</mo>
                                <msub><mi mathvariant="italic">d</mi>
                                <mi mathvariant="italic">R</mi>
                                </msub>
                            </mrow>
                        </mrow>
                    </math>

带有名称空间前缀的地方的MathML标记不起作用,但没有前缀的那些似乎工作正常。

我可以在我的所有文件中查找并替换并删除mml,但我有数百个文件,如果可以通过编辑单个共享头文件,我更愿意修复它。这可能吗?

1 个答案:

答案 0 :(得分:2)

如果要在HTML中使用名称空间前缀元素,则必须使用XHTML,包括使用application/xhtml+xml媒体类型为您的页面提供服务。请注意,尽管您的文档类型,您的页面标记不是格式良好的XML,因此您需要修复它。

否则,浏览器将使用HTML解析器。 HTML解析器不知道名称空间前缀,只知道<math><mrow><mi>等是MathML元素。因此,在这种情况下,必须将MathML转换为不使用前缀。