Язык модификации данных формата XML функциональными методами


Сокращенный синтаксис для описания модификаций


Используемое в предыдущих разделах представление операции модификации в виде пары (выражение_XPath обработчик) может рассматриваться как полный синтаксис записи операции модификации. Помимо полного синтаксиса, являющегося универсальным для широкого класса операций модификации, в данной статье также предлагается сокращенный синтаксис для записи некоторых наиболее употребительных операций модификации.

Для рассмотренных выше операций вставки, удаления, переименования узла и т.п. предлагается идентифицировать каждую из этих операций своим ключевым словом, которое выражается типом данных “символ” языка Scheme. Благодаря быстроте операции сравнения в Scheme двух символов [], при перезаписи запроса на модификацию из сокращенной формы записи в полную форму введенные ключевые слова можно быстро заменить сопоставленными им обработчиками.

Предлагаемые правила сокращенного синтаксиса для наиболее употребительных операций модификации приведены в табл. 2. Для операций модификации, требующих параметризации обработчиков (например, для вставки или переименования узлов), необходимые дополнительные параметры в сокращенном синтаксисе записываются после ключевого слова, идентифицирующего операцию модификации. Необходимо также заметить, что каждая из операций перемещения поддерева, представленная в табл. 2 одним списком, переписывается в терминах полного синтаксиса в совокупность из двух операций модификации, связанных друг с другом посредством базового узла. При перезаписи из сокращенного синтаксиса в полный синтаксис дополнительный параметр операции перемещения поддерева становится первым членом пары, выражающей вторую из двух операций модификации, в совокупность которых переписывается данная операция перемещения.

операция_модификации_в_сокращенном_синтаксисе ::= `( ,выражение_XPath delete ) | `(,выражение_XPath insert-following,добавляемый_узел_на_SXML)| `(,выражение_XPath insert-preceding,добавляемый_узел_на_SXML)| `(,выражение_XPath insert-into ,добавляемый_узел_на_SXML)| `(,выражение_XPath replace ,заменяющий_узел_на_SXML)| `(,выражение_XPath rename ,новое_имя_узла)| `(,выражение_XPath move-following ,выражение_XPath-новое_место_узла)| `(,выражение_XPath move-preceding ,выражение_XPath-новое_место_узла)| `(,выражение_XPath move-into ,выражение_XPath-новое_место_узла)




Начало  Назад  Вперед



Книжный магазин