2017-02-22 7 views
1

Я пытаюсь использовать OpenMath в MathML by MathJax. Код нижеиспользуя аннотацию с OpenMath в MathML и MathJax

<!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 value и xmlns является URI 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»

Что я могу сделать, чтобы использовать OpenMath (?) в MathML и MathJax?

+0

Примечание от будущего: cdn.mathjax.org приближается к концу своего срока службы, проверьте https://www.mathjax.org/cdn-shutting-down/ на советы по миграции. –

ответ

2

Сопровождающий из проверки W3C HTML (валидаторов) здесь. Я не знаю, какой инструмент произвел выход в вопросе, но я угадываю причину, по которой эти части находятся в красном, просто потому, что HTML-чекер сообщает об ошибках для этих частей.

Для MathML я полагаю, что чекер немного строже, чем нужно. В частности, он не распознает OpenMath вообще, потому что несколько лет назад я yanked all OpenMath-specific code from the checker по просьбе кого-либо из рабочей группы MathML.

Однако это не значит, что ваш код не будет работать корректно в MathJax. Если он работает так, как ожидалось, в MathJax, вы можете спокойно игнорировать сообщения от любого инструмента, сообщающего об этих ошибках.

+0

Спасибо за вашу доброту! Можете ли вы указать адрес или что-нибудь для интеграции MathML? Я хочу увидеть его для изучения :) – wallah

+1

Ну, например, причина, по которой контрольная панель сообщает об ошибке для '' из-за [строк 84-86 в схеме RelaxNG file] (https://github.com/validator/validator/blob/master/schema/mml3/mathml3-common.rnc#L84), который использует checker для определения допустимых значений. Эти строки ограничивают его значениями «application/xhtml + xml» и «text/html». Было бы совершенно необоснованно утверждать, что это слишком строго, или даже не было бы совершенно необоснованным утверждать, что мы должны разрешить любую ценность для атрибута 'encoding'. – sideshowbarker

Смежные вопросы