Язык модификации XML-данных (XML DML)

Язык модификации XML-данных (XML DML) является расширением языка XQuery. Как определено консорциумом W3C, в языке XQuery отсутствует часть, касающаяся манипулирования данными (DML). Язык XML DML, представленный в этом разделе, вместе с языком XQuery обеспечивает полнофункциональный язык запросов и модификации данных, который можно использовать для данных типа xml.

В язык XML DML добавлены следующие ключевые слова с учетом регистра, которые отсутствуют в языке XQuery:

  • insert

  • delete

  • replace value of

Как описывается в разделе Тип данных xml, можно создавать переменные и столбцы типа xml и присваивать им XML-документы или фрагменты XML-документов. Чтобы модифицировать или обновить эти экземпляры XML, выполните следующее:

  • используйте метод modify() для типа данных xml;

  • задайте соответствующие инструкции XML DML внутри метода modify().

Заметим, что существуют атрибуты, которые нельзя добавить, удалить или изменить их значение. Например:

  • Для типизированного или нетипизированного xml это атрибуты xmlns, xmlns:* и xml:base.

  • Для типизированного xml это атрибуты xsi:nil и xsi:type.

К другим ограничениям также относятся:

  • Для типизированного или нетипизированного xml невозможно успешное добавление атрибута xml:base.

  • Для типизированного xml невозможно успешное удаление или модификация атрибута xsi:nil. Для нетипизированного xml можно удалить атрибут или модифицировать его значение.

  • Для типизированного xml невозможна успешная модификация значения атрибута xs:type. Для нетипизированного xml можно модифицировать значение атрибута.

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