XQuery
XQuery | |
---|---|
Класс языка | Декларативный, функциональный, модульный |
Появился в | 2007 |
Разработчик | W3C |
Выпуск | 3.1 (21 марта 2017) |
Система типов | Динамическая или статическая, строгая |
Основные реализации | Много |
Сайт | w3.org/XML/Query/ |
![]() |
XQuery — язык запросов и функциональный язык программирования, разработанный для обработки данных в формате XML, простого текста, JSON или других предметно-специфичных форматах. XQuery использует XML как свою модель данных. Предназначен для запроса и преобразования коллекций структурированных и неструктурированных данных.
XQuery 1.0 был разработан рабочей группой XML Query в составе организации W3C. Эта работа координируется другой рабочей группой, работающей над XSLT 2.0. Эти две группы разделяют ответственность за XPath 2.0, входящий в состав XQuery 1.0. 3 ноября 2005 года XQuery 1.0 получил статус W3C Candidate Recommendation, а 23 января 2007 года XQuery 1.0, одновременно с XSLT 2.0 и XPath 2.0, получил статус официальной рекомендации (W3C Recommendation). В настоящее время ведутся работы по развитию этого стандарта, с добавлением выражений для свободного поиска по тексту и для внесения изменений в XML документы и базы данных, а также для процедурных операций.
XQuery версии 3.0 принят W3C 8 апреля 2014 года[1]
XQuery версии 3.1 принят W3C 21 марта 2017 года[2]
Применение
Несколько примеров, где используется XQuery:
- Выборка информации из баз данных с помощью веб-сервисов
- Формирование отчётов на основе данных в XML базах данных
- Поиск информации в текстовых документах
- Выборка и преобразование данных XML в XHTML формат для публикации в вебе
- Сбор данных из нескольких баз данных для интеграционных приложений
- Разделение документа XML на несколько частей для выполнения отдельных множественных операций.
Примеры
Простейшее корректное «Hello world» приложение на XQuery:
"Hello World"
В рамках стандарта SQL:2006 разработаны механизмы для встраивания XQuery-запросов прямо в SQL-запросы:
<html><head/><body> { for $act in doc("hamlet.xml")//ACT let $speakers := distinct-values($act//SPEAKER) return <span> <h1>{ $act/TITLE/text() }</h1> <ul> { for $speaker in $speakers return <li>{ $speaker }</li> } </ul> </span> } </body> </html>
Примечания
Ссылки
- http://www.w3.org/TR/xquery/
- http://www.w3.org/TR/xslt20/
- http://www.w3.org/TR/xpath20/
- Sedna — российская XML-СУБД Sedna
- BaseX — открытая реализация XML Database на основе XPath, XQuery
- http://exist.sourceforge.net/ Открытая реализация native XML database на основе XQuery
- http://xqib.org/ Плагин для IE и Firefox, позволяющий использовать XQuery в качестве скриптового языка
- Деревянко А. С. Язык запросов XQuery. 2007