W3C Amaya

previous top

Использование Файла HTML.trans

Этот документ является введением в механизм трансформации структуры, предоставляемый Amaya. Здесь описан синтаксис языка трансформации и способы трансформации, выполняемой в редакторе.

Файл amaya/HTML.trans содержит описание возможных трансформаций. Этот фал можно редактировать в ходе сессии Amaya. Он динамически разбирается в ходе процедуры трансформации, поэтому новые трансформации можно добавлять прямо в ходе сессии редактирования.

Внимание: поскольку описания трансформаций могут содержать тэги, нередактируйте файл HTML.trans с помощью Amaya. Для этого можно использовать любой текстовый редактор.


Синтаксис Языка Трансформации Amaya

Комментарии начинаются с символа !и идут до конца строки.

Файл состоит из списка описаний трансформаций. Каждое описание трансформации состоит из трёх частей:

Имя появляется в меню Transform и идентифицирует данную трансформацию для конечного пользователя.

Патэрн/pattern

Патэрн описывает специфическую организацию трансформируемых элементов. Он работает как фильтр поверх HTML dtd. Назначение патэрна - идентифицировать определённую комбинацию элементов, к которым применяется данная трансформация. В патэрне имеется возможность выразить условия для последовательности тэгов, для содержимого тэга и для наличия и значения атрибута.

Формально патэрн содержит HTML-тэги (возможно, с атрибутами) и некоторые операции:

|выбор

, для потомков

+последовательность

?опция

( ) группирование узлов

Фигурные скобки { } определяют содержимое узла.

Символ * это лексема/token, обозначающая совпадение с любым элементом.

Можно переименовать тэг, поставив перед ним имя с последующим двоеточием (:).

Тэг может иметь атрибуты. Если атрибуту не задано значение, элемент совпадает, если атрибут имеется. Если значения атрибута специфицировано, элемент совпадает, если атрибут имеется и имеет специфицированное значение.

Примеры патэрнов даны в конце этого документа.

Правила/rules

Правило показывает, как трансформируются элементы, идентифицированные в патэрне. В правиле имеются две части, разделённые символом >:

Сам список целевых тэгов делится на две части, разделённые двоеточием (:):

Путь размещения сгенерированного ищется в самой левой ветви дерева документа, начиная с предка элемента, совпадающего с самым высоким символом патэрна.

В списке генерируемых тэгов символ точки (.) используется для спуска по структуре дерева.

Если спецсимвол "звёздочка" (*) заканчивает список генерируемых тэгов, тэг исходного элемента не изменяется, но может быть перемещён в другое место.

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


Процесс Трансформации

При выборе команды Transform в меню Edit, Amaya разбирает файл HTML.trans (или MathML.trans и т.п.). Затем выбранные элементы совпадают с патэрном каждой трансформации. Имена совпавших трансформаций предлагаются пользователю во всплывающем меню.

Если несколько трансформаций с тем же именем совпадают с выбранными элементами, пользователю предлагается трансформация наивысшего уровня. Если несколько трансформаций совпадают на одном уровне, предлагается уровень, объявленный первым в файле HTML.trans. Как следствие, рекомендуется специфицировать трансформации со специфическим патэрном ранее более общего.

После то как трансформация выбрана пользователем, структура назначения строится в соответствии с правилами, по мере прохода по выбранным элементам.

Наконец, содержимое исходных элементов (текст и изображения, а также структурированные элементы) переносятся в производимые элементы.

Этот процесс трансформации HTML-документов полностью описан в Interactively Restructuring HTML Documents, документе, представленном Cécile Roisin и Stèphane Bonhomme на 5th international WWW conference в Париже в мае 96 года.


Примеры


Hosted by uCoz