Zorba (процессор XQuery)

Open-source query processor

Zorba — это процессор запросов с открытым исходным кодом, написанный на C++ , [1] реализующий

  • несколько спецификаций W3C XQuery и XML и
  • язык JSONiq для обработки данных JSON .

Zorba распространяется под лицензией Apache License версии 2.0. Проект в основном поддерживается FLWOR Foundation, Oracle и 28msec.

Технические характеристики

Zorba обеспечивает реализацию следующих спецификаций W3C :

  • XQuery 1.0
  • XQuery3.0
  • XQuery Update Facility 1.0
  • XQuery и XPath Полный текст 1.0
  • Синтаксис XML для XQuery 1.0
  • XML-схема
  • Преобразования XSL (XSLT)
  • Объекты форматирования XSL

Zorba также предоставляет реализации:

  • JSONiq
  • Расширение скриптов
  • Объект определения данных

Скриптинг

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 в качестве хранилища.

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
  • Самоанализ и размышления
  • Криптография
  • Обработка изображений

Ссылки

  1. ^ Чанцин, Ли; Ван, Лин, Ток (28.02.2010). Расширенные приложения и структуры в обработке XML: потоки меток, использование семантики и технологии запросов данных: потоки меток, использование семантики и технологии запросов данных. IGI Global. стр. 40. ISBN 978-1-61520-728-2.{{cite book}}: CS1 maint: multiple names: authors list (link)
  • Сайт Зорбы
  • Живая демонстрация Zorba
  • Зорба модули
Retrieved from "https://en.wikipedia.org/w/index.php?title=Zorba_(XQuery_processor)&oldid=1202687525"