18c0693f

XUpdate


К настоящему времени рабочая группа XQuery в W3C еще не разработала стандартный язык изменения частей XML-документов. В нашей работе мы используем подмножество языка изменения частей XML-документов, который был предложен в статье И. Татаринова []. В дальнейшем язык изменений мы будем называть XUpdate. Синтаксис этого языка выглядит следующим образом:

update := 'InsertInto' '(' constr1 ',' locpath ')' | 'InsertBefore' '(' constr2 ',' locpath ')' | 'InsertAfter' '(' constr2 ',' locpath ')' | 'Delete' '(' locpath ')' 'Rename' '(' locpath, QName ')' constr1:= 'element' '{' QName '}' content | 'attribute' '{' QName '}' content constr2 := 'element' '{' QName '}' content content := '{' PCDATA '}' | '{' '}'

Каждая операция принимает на вход несколько аргументов (constr1, constr2 и locpath). Выражения constr1 и constr2 определяют новые узлы. Выражение locpath1 определяет путь адресации узлов в XML-документе, которые являются целевыми узлами операции изменения. Ниже приводится описание каждой операции.

Далее в статье мы будем использовать обозначения II, IA, IB, D и RN для ссылок на операции InsertInto, InsertAfter, InsertBefore, Delete и Rename соответственно. Кроме того, мы будем использовать обозначение I* для ссылки на произвольную операцию вставки.