Открыть главное меню

XQuery

XQuery — язык запросов и функциональный язык программирования, разработанный для обработки данных в формате XML, простого текста, JSON или других предметно-специфичных форматах. XQuery использует XML как свою модель данных. Предназначен для запроса и преобразования коллекций структурированных и неструктурированных данных.

XQuery
Класс языка Декларативный, функциональный, модульный
Появился в 2007
Разработчик W3C
Выпуск 3.1 (21 марта 2017)
Система типов Динамическая или статическая, строгая
Основные реализации: Много
Сайт w3.org/XML/Query/

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:

  1. Выборка информации из баз данных с помощью веб-сервисов
  2. Формирование отчётов на основе данных в XML базах данных
  3. Поиск информации в текстовых документах
  4. Выборка и преобразование данных XML в XHTML формат для публикации в вебе
  5. Сбор данных из нескольких баз данных для интеграционных приложений
  6. Разделение документа 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>

ПримечанияПравить

СсылкиПравить