This article needs additional citations for verification. (February 2024) |
Zorba — это процессор запросов с открытым исходным кодом, написанный на C++ , [1] реализующий
Zorba распространяется под лицензией Apache License версии 2.0. Проект в основном поддерживается FLWOR Foundation, Oracle и 28msec.
Zorba обеспечивает реализацию следующих спецификаций W3C :
Zorba также предоставляет реализации:
Scripting Extension — это открытая спецификация, которая предоставляет семантику для побочных эффектов в программах XQuery или JSONiq. Она также предоставляет удобный синтаксис для императивного программирования в таких программах. Следующий фрагмент кода является примером синтаксиса Scripting. Он вычисляет последовательность, содержащую все числа Фибоначчи, которые меньше 100.
(: это оператор объявления переменной :) переменная $ a as xs:integer := 0 ; переменная $ b as xs:integer := 1 ; переменная $ c as xs:integer := $ a + $ b ; переменная $ fibseq as xs:integer * := ( $ a , $ b ); while ( $ c lt 100 ) { (: это оператор присваивания переменной :) $ fibseq := ( $ fibseq , $ c ); $ a := $ b ; $ b := $ c ; $ c := $ a + $ b ; } $ fibseq
Ниже приведен пример операций CRUD с использованием сценариев, XQuery и обновления XQuery.
переменная $ stores := doc ( "stores.xml" )/ stores ;
( : Создать :) вставить узел <store> <store-number> 4 </store-number> <state> NY < / state > < / store > в $ stores ;
(: Обновление :) замените значение узла $ stores / store [ state = " NY " ]/ store-number на "5" ;
(: Удалить :) удалить узел $ stores / store [ state != "NY" ];
(: Читать :) $ магазины
Data Definition Facility предоставляет семантику для постоянных артефактов, таких как коллекции и индексы в программах XQuery или JSONiq. Например, следующие фрагменты кода объявляют коллекцию с именем entry и индекс для этой коллекции с именем entry .
пространство имен модуля g = "http://www.zorba-xquery.com/guestbook" ; пространство имен импортируемого модуля db = "http://www.zorba-xquery.com/modules/store/static/collections/dml" ; объявить пространство имен an = "http://www.zorba-xquery.com/annotations" ; (: Объявляет коллекцию с именем entry :) объявить коллекцию g : entry как элемент ( entry ); (: Объявляет переменную, указывающую на коллекцию g:entries :) объявить переменную $ g:entries := xs:QName ( 'g:entries' ); (: Объявляет индекс с именем entry поверх коллекции записей :) 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 в браузере создал плагин браузера для Zorba и использует DOM в качестве хранилища.
Zorba можно использовать с различными языками программирования: C++, C, XQJ / Java, PHP, Python, C#, Ruby и даже XQuery/JSONiq.
Zorba также доступен как инструмент командной строки.
XQDT — это плагин XQuery для Eclipse (IDE) . Он полностью поддерживает API и синтаксис Zorba.
Zorba предоставляет более 70 модулей XQuery для создания приложений. Некоторые из этих модулей:
{{cite book}}
: CS1 maint: multiple names: authors list (link)