на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
MathML (Mathematical Markup Language)
b>1.6.3 Примеры смешанной разметки

Нотация: 3

Разметка:

<mrow>

<semantics>

<mrow>

<msubsup>

<mo>&int; </mo>

<mn>1</mn>

<mi>t</mi>

</msubsup>

<mfrac>

<mrow>

<mo>&dd; </mo>

<mi>x</mi>

</mrow>

<mi>x</mi>

</mfrac>

</mrow>

<annotation-xml encoding="MathML-Content">

<apply>

<int/>

<bvar><ci>x</ci></bvar>

<lowlimit><cn>1</cn></lowlimit>

<uplimit><ci>t</ci></uplimit>

<apply>

<divide/>

<cn>1</cn>

<ci>x</ci>

</apply>

</apply>

</annotation-xml>

</semantics>

</mrow>

В этом примере мы используем элемент semantics для того, чтобы представить выражение разметки содержания MathML как семантическое примечание к выражению разметки представления. В представленной разметке элемент msubsup применяется для задания нижних и верхних индексов в выражении, в данном случае - пределов интегрирования в определенном интеграле. Также для описания символов интеграла и дифференциала используются сущности &int; и &dd;.

Элемент semantics содержит в качестве первого дочернего элемента комментируемое выражение, а в качестве второго - сам комментарий. На тип нотации, задаваемой элементом semantics, ограничений не существует. Например, можно задавать разметку TEX или компьютерной алгебры в качестве примечания. Тип аннотации задается атрибутом encoding и элементами annotation, annotation-xml.

Элемент semantics также часто применяется, когда надо задать предложения по представлению разметки содержания документа. В этом случае, в применении к вышеописанной формуле мы получим такую разметку:

<semantics>

<apply>

<int/>

<bvar><ci>x</ci></bvar>

<lowlimit><cn>1</cn></lowlimit>

<uplimit><ci>t</ci></uplimit>

<apply>

<divide/>

<cn>1</cn>

<ci>x</ci>

</apply>

</apply>

<annotation-xml encoding="MathML-Presentation">

<mrow>

<msubsup>

<mo>&int; </mo>

<mn>1</mn>

<mi>t</mi>

</msubsup>

<mfrac>

<mrow>

<mo>&dd; </mo>

<mi>x</mi>

</mrow>

<mi>x</mi>

</mfrac>

</mrow>

</annotation-xml>

</semantics>

Этот тип комментариев полезен, если требуется отображение разметки содержания, отличное от заданного по умолчанию. Например, по умолчанию, некоторые программы отображения могут выводить подинтегральное выражение в виде ' (1/x) dx'. С помощью комментария MathML-Presentation можно задать отображение в виде 'dx/x'. Будьте внимательны, так как программы отображения не обязаны принимать во внимание расположенную в комментариях информацию. Ее использование зависит от программы.

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

1.7.1 Синтаксис и грамматика 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 нельзя указать, что первый дочерний элемент должен обрабатываться иначе, чем остальные.

1.7.2 Пример синтаксиса 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.

1.7.3 Дочерние элементы против аргументов

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

Некоторые элементы имеют другие требования на число или тип аргументов. Эти дополнительные требования описываются для каждого конкретного элемента.

1.7.4 Значения атрибутов MathML

В соответствии со спецификацией языка XML, атрибуты элементов д
олжны быть заданы в одной из следующих форм:

attribute-name = "value"

or

attribute-name = 'value'

где пробелы вокруг знака '=' необязательны.

Имена атрибутов выделены в тексте спецификации моноширинным шрифтом, так же как и примеры.

Значения атрибутов, которые в MathML могут быть строкой произвольных символов, должны быть заключены в двойные (") или одинарные (') кавычки. Значение атрибута может содержать тот тип кавычек, который не используется для заключения всего значения.

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

В частности, символы ", ', & и < могут быть включены в значения атрибутов MathML (когда это разрешено синтаксисом) с использованием сущностей &quot;, &apos;, &amp; и &lt;, соответственно.

MathML DTD, объявляет типы большинства значений атрибутов как строку CDATA. Это позволяет увеличить совместимость с существующим программным обеспечением на основе SGML и XML и расширять список предопределенных значений. Подобные же рассуждения применимы к схемам XML.

1.7.4.1 Синтаксические нотации, используемые в спецификации MathML

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

Нотация

Что означает

number

десятичное целое или рациональное число (строка цифр с одной десятичной точкой), возможно, начинающееся со знака '-'

unsigned-number

десятичное целое или вещественное число, без знака

integer

десятичное целое число, возможно, начинающееся со знака '-'

positive-integer

десятичное целое число, без знака, не 0

string

произвольная строка (всегда полное значение атрибута)

character

одиночный непробельный символ или ссылочая сущность MathML; возможно разделение пробелами

#rrggbb

цвет в формате RGB; три пары шестнадцатиричных цифр в примере #5599dd определяют пропорцию красного, зеленого и синего по шкале от x00 до xFF, которая дает яркий голубой цвет.

h-unit

единица измерения горизонтальной длины (допустимые единицы измерения перечислены ниже)

v-unit

единица измерения вертикальной длины (допустимые единицы измерения перечислены ниже)

css-fontfamily

объясняется ниже, в подразделе о CSS

css-color-name

объясняется ниже, в подразделе о CSS

остальные слова, выделенные курсивом

объясняются в тексте, отдельно для каждого атрибута

form +

один или более экземпляров 'form'

form *

нуль или более экземпляров 'form'

f1 f2... fn

один экземпляр каждой формы, последовательно, возможно разделенные пробельными символами

f1 | f2 |... | fn

любая из указаных форм

[form]

необязательный экземпляр 'form'

(form)

то же самое, что и просто form

невыделенные слова

слова, включеные в значени атрибута дословно (есди это не часть объясняющей фразы)

символы в кавычках

символы, дословно включенные в значение атрибута (например, "+" or '+')

Приоритет операция, от наивысшего к наинизшему:

form + или form *

f1 f2... fn (последовательность форм)

f1 | f2 |... | fn (одна из форм)

Тип string может содержать произвольные символы, которые определены в значениях атрибута XML CDATA. В MathML нет синтаксических правил, по которым string может быть частью значения атрибута, а не всем значением.

Соседние ключевые слова и числа в значениях атрибутов должны разделяться пробельными символами, за исключением следующих за числами идентификаторов единиц измерения (что указано в синтаксисе символов h-unit и v-unit). Пробельные символы не требуются, но разрешены между любыми перечисленными выше токенами, за исключением (для совместимости с CSS) непосредственно перед идентификаторами единиц измерения, между знаком '-' и числами, между # и rrggbb или rgb.

Страницы: 1, 2, 3, 4, 5, 6



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.