Зорба (процессор XQuery)
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2024 г. ) |
Zorba — процессор запросов с открытым исходным кодом, написанный на C++ . [1] внедрение
- несколько спецификаций W3C XQuery и XML и
- язык JSONiq для обработки данных JSON .
Zorba распространяется по лицензии Apache версии 2.0. Проект в основном поддерживается FLWOR Foundation , Oracle и 28msec .
Технические характеристики
[ редактировать ]Zorba обеспечивает реализацию следующих спецификаций W3C :
- XQuery 1.0
- XQuery 3.0
- Средство обновления XQuery 1.0
- Полный текст XQuery и XPath 1.0
- Синтаксис XML для XQuery 1.0
- XML-схема
- XSL-преобразования (XSLT)
- Объекты форматирования XSL
Zorba также предоставляет реализации:
Сценарии
[ редактировать ]Расширение сценариев — это открытая спецификация, которая обеспечивает семантику побочных эффектов в программах XQuery или JSONiq. Он также предоставляет удобный синтаксис для императивного программирования в таких программах. Следующий фрагмент кода является примером синтаксиса сценариев. Он вычисляет последовательность, содержащую все числа Фибоначчи меньше 100.
(: this is a variable declaration statement :)
variable $a as xs:integer := 0;
variable $b as xs:integer := 1;
variable $c as xs:integer := $a + $b;
variable $fibseq as xs:integer* := ($a, $b);
while ($c lt 100) {
(: this is a variable assignment statement :)
$fibseq := ($fibseq, $c);
$a := $b;
$b := $c;
$c := $a + $b;
}
$fibseq
Ниже приведен пример операций CRUD с использованием сценариев, XQuery и обновления XQuery.
variable $stores := doc("stores.xml")/stores;
(: Create :)
insert node <store><store-number>4</store-number><state>NY</state></store> into $stores;
(: Update :)
replace value of node $stores/store[state="NY"]/store-number with "5";
(: Delete :)
delete node $stores/store[state != "NY"];
(: Read :)
$stores
Средство определения данных
[ редактировать ]Средство определения данных обеспечивает семантику для постоянных артефактов, таких как коллекции и индексы в программах XQuery или JSONiq. Например, в следующих фрагментах кода объявляется коллекция с именем «записи» и индекс этой коллекции с именем «Enter» .
module namespace g = "http://www.zorba-xquery.com/guestbook";
import module namespace db = "http://www.zorba-xquery.com/modules/store/static/collections/dml";
declare namespace an = "http://www.zorba-xquery.com/annotations";
(: Declares a collection named entries :)
declare collection g:entries as element(entry);
(: Declares a variable that points to the g:entries collection :)
declare variable $g:entries := xs:QName('g:entries');
(: Declares an index named entry on top of the entries collection :)
declare %an:automatic %value-equality index g:entry
on nodes db:collection(xs:QName('g:entries'))
by xs:string(@id) as xs:string;
Хранилище
[ редактировать ]Zorba предоставляет подключаемое хранилище, поэтому его можно использовать в различных средах: на диске, в базе данных, в браузере. По умолчанию Zorba построен с хранилищем в основной памяти. 28msec реализует хранилище поверх MongoDB . Проект XQuery in the Browser создал плагин браузера для Zorba и использует DOM в качестве хранилища.
API
[ редактировать ]Zorba можно использовать на различных хост-языках : C++, C, XQJ /Java, PHP, Python, C#, Ruby и даже XQuery/JSONiq .
Zorba также доступен как инструмент командной строки .
XQDT — это плагин XQuery для Eclipse (IDE) . Он полностью поддерживает API и синтаксис Zorba.
Модули
[ редактировать ]Zorba предоставляет более 70 модулей XQuery для создания приложений. Некоторые из этих модулей:
- Файловая система, электронная почта, клиент HTTP, клиент OAuth
- Обработка модели данных XQuery и JSONiq: типизация, атомарные элементы и узлы.
- Полнотекстовый: токенизатор, стеммер, поиск в тезаурусе.
- Очистка данных: фонетическое сходство, сходство множества, конверсии.
- Преобразование данных: Base64, CSV, HTML, JSON, XML.
- Форматирование данных: XSL-FO
- Самоанализ и размышление
- Криптография
- Обработка изображений
Ссылки
[ редактировать ]- ^ Чанцин, Ли; Ван, Линг, Ток (28 февраля 2010 г.). Расширенные приложения и структуры в обработке XML: потоки меток, использование семантики и технологии запросов данных: потоки меток, использование семантики и технологии запросов данных . IGI Global. п. 40. ИСБН 978-1-61520-728-2 .
{{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка )