Синтаксис и грамматика MathML

 

Синтаксис и грамматика MathML

MathML основан на [XML] (Extensible Markup Language), а значит его синтаксис подчиняется правилам сиснтаксиса XML, и грамматика определяется DTD (Document Type Definition). Другими словами, детали использования тегов, атрибутов, сущностей и всего остального определены в спецификации языка XML, а детали, касающиеся элементов и атрибутов MathML, вложенности элементов и так далее, определены в MathML DTD.

W3C, стараясь увеличить легкость и гибкость использования XML в Сети и поддержать создание модульных XML-приложений, обнаружил, что основная форма DTD не является достаточно гибкой. Поэтому, была создана рабочая группа W3C для разработки XML Schemas, которые являются документами спецификации и должны заменить DTD. MathML 2.0 разработан так, что математики могли использовать все преимущества развивающихся Web-технологий. Таким образом, существует схема для MathML.

Также MathML определяет синтаксические и грамматические правила в дополнение к общим правилам, которые он наследует как приложение XML. Эти правила позволяют MathML представлять значительно больше информации, чем возможно представить с помощью чистого XML, без введения большого числа новых элементов и использовать значительно более сложные DTD или схемы. Конечно, недостатком введения специфических правил MathML является то, что созданные документы не могут обрабатываться процессорами и валидаторами XML.

Существует два основных типа дополнительных грамматических и синтаксических правил MathML. Первый тип включает в себя установку дополнительных критериев на значения атрибутов. Например, в чистом XML невозможно потребовать, чтобы значение атрибута было положительным целым числом. Второй тип правил определяет более детальные ограничения на дочерние элементы (например, на их порядок), чем даны в DTD или даже схемах. Например, в XML нельзя указать, что первый дочерний элемент должен обрабатываться иначе, чем остальные.

 

Пример синтаксиса XML

Так как MathML основан на XML, спецификация MathML использует терминологию XML. Данные XML состоят из символов Unicodes (которые включают в себя обычные ASCII-символы), ссылки на сущности (неформально называемые сущностями), такие как &lt;, которые обычно представляют расширенные символы, и элементы, такие как <mi fontstyle="normal"> x </mi>.

Элементы часто содержат в себе другие XML-данные, называемые их 'содержанием' или 'телом', между 'открывающим' и 'закрывающим' тегами, также как в HTML. Существуют также 'пустые элементы', такие как <plus/>, у которых открывающий тег заканчивается символом />, чтобы показать, что элемент не имеет содержания или закрывающего тега. Открывающий тег должен содержать именованные параметры, называемые атрибутами, например, fontstyle="normal" в приведенном выше примере.

Так как большие и маленькие буквы различаются в XML, то и имена элементов и атрибутов MathML являются чувствительными к регистру. Для удобочитаемости в спецификации MathML большинство из них определены в нижнем регистре.

В формальном обсуждении разметки XML делается различие между элементом, таким как mrow и задающими его тегами <mrow> и </mrow>. То, что находится между тегами <mrow> и </mrow>, называется содержанием или телом элемента mrow. 'Пустой элемент', например none, не имеет тела и определяется одним тегом вида <none/>. В этой спецификации не будет делаться упора на это различие между тегами и элементами. Например, мы иногда будем ссылаться на элементы <mrow> и <none/>, подразумевая элемент, которому принадлежат эти теги. Это делается для того, чтобы ссылки на элементы отличались от ссылок на атрибуты. Тем не менее, термины 'элемент' and 'тег' будут использоваться в строгом соответствии с терминологией XML.

 

Дата: 2019-04-23, просмотров: 9.