XQuery

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

XQuery — мова запитів, розроблена для обробки даних у форматі XML. 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 надає спосіб витягати і маніпулювати даними з XML документів або ж з будь-якого джерела даних, що можуть розглядатися як XML, наприклад, з реляційних баз даних або з документів офісного пакета.

XQuery для адресації потрібних ділянок XML документа використовує синтаксис виразів XPath. Це доповнюється SQL-подібними «FLWOR-виразами» для виконання об'єднань. FLWOR вирази сконструйовані з п'яти речень, за чиєю абревіатурою вони й названі: FOR, LET, WHERE, ORDER BY, RETURN.

Мова також надає синтаксис для конструювання нових XML документів. Там, де імена елементів і атрибутів відомі, можна використовувати XML-подібний синтаксис, в інших випадках вирази посилаються на доступні конструктори динамічних вузлів. Усі ці конструкції визначені як вирази мови, і вони можуть бути довільно вкладеними.

Мова базується на три-структурній моделі інформаційного вмісту XML-документа, що складається з семи видів вузлів: вузли документа, елементи, атрибути, текстові вузли, коментарі, інструкції обробки, і простори імен.

Система типів мови уявляє всі величини як послідовності (одиночна величина розглядається як послідовність з довжиною один). Члени послідовності можуть бути або вузлом, або атомарною величиною. Атомарні величини можуть бути цілим числом, рядком, булевою константою тощо. Повний перелік типів, заснований на примітивних типах, визначених у схемі XML.

XQuery 1.0 не включає можливостей редагування XML-документа і баз даних. У цій версії бракує також можливості повнотекстового пошуку. Обидві ці можливості в активному процесі розробки наступних версій мови.

Приклад використання[ред. | ред. код]

В цьому прикладі перелічуються всі унікальні персонажі кожного акту Шекспірівської п'єси Гамлет, записаної у вигляді hamlet.xml [Архівовано 21 серпня 2007 у Wayback Machine.]

<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>

Застосування[ред. | ред. код]

Нижче перелічені типові задачі, коли доцільно використовувати XQuery

  • Витяг інформації з бази даних для використання у веб-службі
  • Генерація підсумкового звіту з даних, що зберігаються в XML документі
  • Пошук текстового документу в вебі за запитом, що відповідає вимогам, і видача результату
  • Вибір і перетворення XML даних в XHTML для публікації в Мережі
  • Витягування даних з бази даних для використання в інтеграції застосувань
  • Розщеплення XML документу, що представляє численні транзакції, в множину окремих XML документів

Втілення[ред. | ред. код]

Посилання[ред. | ред. код]