Есть ли в XQuery (или XPath) эквиваленты Update, Insert и Delete, а также Select?

Я знаю, как найти то, что мне нужно, из XML с помощью XPath. К синтаксису нужно немного привыкнуть, но он довольно мощный. Я также заинтересован в изучении XQuery, но синтаксис, похожий на SQL, кажется неудобным. Тем не менее, если он может предоставить не только эквивалент выбора, но также обновлять, вставлять и удалять, как это делает SQL, я прощу всю неловкость.

Итак, есть ли в XQuery эквиваленты Update, Insert и Delete, а также Select?

Есть ли в XPath эквиваленты, которые я пропустил?


person dacracot    schedule 21.11.2008    source источник


Ответы (4)


Нет. Ни один из XPath или XQuery имеет функции обновления/вставки/удаления, подобные SQL.

Вам необходимо найти реализацию "средства обновления XQuery 1.0».

На данный момент (ноябрь 2008 г.) известно три таких:

  1. SaxonSA XSLT и процессор XQuery — автор Майкл Кей; Поддерживается с версии 9.1, но только в коммерческой версии.
  2. MonetDB/XQuery — процессор XQuery с открытым исходным кодом поверх MonetDB реляционная система баз данных.
  3. XQilla — открытый исходный код (ASL2.0) Библиотека обработки XQuery с поддержкой последних функций XQuery Update. XQilla написана на C++ и включает исполняемую оболочку командной строки для выполнения запросов к содержимому XML, хранящемуся в локальной файловой системе. Эта библиотека активно развивается и является частью поддерживаемого продукта Oracle, Berkeley DB XML. .
person Dimitre Novatchev    schedule 22.11.2008
comment
@CharlesDuffy: Конечно, но я считаю, что в 2008 году BaseX еще не существовало. - person Dimitre Novatchev; 18.03.2012

Взгляните на средство обновления XQuery, ознакомьтесь с Примеры использования XQuery или ознакомьтесь с страница рабочей группы XML Query.

person Community    schedule 21.11.2008

В SQL Server 2005/8 расширение XQuery называется XML DML, и поддерживает изменение данных с помощью оператора заменить значение.

person devio    schedule 13.12.2008

XPath — это язык для адресации частей XML-документа. Поэтому у него не может быть оператора DML. Это оператор select по определению.

person Michael Baranov    schedule 21.11.2008
comment
Это верно для XPath. Однако у XQuery есть формально стандартизированное расширение, допускающее обновления. - person Charles Duffy; 18.03.2012