2017-02-22 76 views
1

我试图在MathML中使用MathML中的OpenMath。该代码是下面在MathML和MathJax中使用OpenMath注释

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Mixed Markup</title> 

    <script type="text/x-mathjax-config"> 
     MathJax.Hub.Config({ 
      MathML: { 
       extensions: ["content-mathml.js"] 
      } 
     }); 
    </script> 

    <script type="text/javascript" async 
      src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> 
    </script> 

</head> 
<body> 
    <math xmlns="http://www.w3.org/1998/Math/MathML"> 
     <semantics> 
      <mrow> 
       <mrow> 
        <mi>sin</mi> 
        <mo>&#x2061;<!--FUNCTION APPLICATION--></mo> 
        <mfenced><mi>x</mi></mfenced> 
       </mrow> 
       <mo>+</mo> 
       <mn>5</mn> 
      </mrow> 
      <annotation encoding="application/x-tex"> 
       \sin x + 5 
      </annotation> 
      <annotation-xml encoding="application/openmath+xml"> 
       <OMA xmlns="http://www.openmath.org/OpenMath"> 
        <OMS cd="arith1" name="plus"/> 
        <OMA><OMS cd="transc1" name="sin"/><OMV name="x"/></OMA> 
        <OMI>5</OMI> 
       </OMA> 
      </annotation-xml> 
     </semantics> 
    </math>  
</body> 

当我写上面的代码,注解XAL标签和OMA的内容被 红色像捕获的图像以下

enter image description here

(为更详细地, 的在encoding的红线原因是Wrong attribute valuexmlnsURI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)

并且在MathML3(http://www.w3.org/TR/MathML3/chapter5.html#html.annotation.xml)的文档中,他们说

“请注意,如果MathML不被视为XML文档,则示例中使用的名称空间可扩展性可能不可用。 ...特别是HTML解析器将xmlns属性视为普通属性,因此OpenMath示例将被HTML验证程序归为无效。“

但我不明白它的含义,特别是'MathML不是作为XML文档”处理

我能做些什么在MathML和MathJax使用OpenMath(?)?

+0

未来的注意事项:cdn.mathjax.org即将结束生命周期,请查看https://www.mathjax.org/cdn-shutting-down/获取迁移提示。 –

回答

2

的W3C HTML检查(验证)在这里。我不知道是什么工具生成的输出的维护者在这个问题中,但我猜测这些部分是红色的原因仅仅是因为HTML检查器报告那些部分的错误。

对于MathML,我想检查器比需要更严格一点。特别是,它根本不承认OpenMath,因为几年前我应MathML工作组的要求提供了I yanked all OpenMath-specific code from the checker

但是,这并不意味着您的代码将无法在MathJax中正常工作。如果它在MathJax中按预期工作,那么您可以安全地忽略来自任何工具报告这些错误的消息。

+0

谢谢你的好意!你可以给一个地址或任何'MathML集成'?我想看看它的学习:) – wallah

+1

那么,例如,检查器报告'“错误的原因是[RelaxNG模式中的第84-86行文件](https://github.com/validator/validator/blob/master/schema/mml3/mathml3-common.rnc#L84)检查器用来确定允许的值是什么。这些行将其限制为“application/xhtml + xml”和“text/html”的值。如果认为过于严格,或者甚至认为我们应该在所有“编码”属性中允许任何值都不是完全没有道理的,那就不是完全不合理的。 – sideshowbarker