База знаний

Справочная система SP-XML

Связанные темы:

Общие сведения о платформе SP-XML
Структура приложения
Формы описания данных (.xmd)
Встроенные функции
Встроенные объекты
Встроенные глобальные переменные
Экранные формы (.xms)
Язык XQuery
Дополнительные возможности платформы
Первые шаги в освоении платформы SP-XML

Синтаксис языка XQuery

1. Введение

 

   XQuery — язык запросов, разработанный для обработки данных в формате XML.

В SP-XML используется узкое подмножество функций XQuery, расширенное

некоторыми дополнительными функциями. 

 

 

2. Синтаксис запросов XQuery

 

   Из всего множества операторов XQuery в SP-XML для эффективного

исполнения кода следует использовать только запросы вида:

for $elem in <каталог_базы_данных> [where <логическое_условие>]

 [order by $elem/<поле_записи>[desending]] return $elem

(Выдать все записи из базы данных из <каталога_базы_данных>

для которых выполняется <логическое_условие>, упорядочить по  <полю_записи>)

 

<каталог_базы_данных> - это общее наименование группы однотипных записей в базе данных.

Иерерхия объектов следующая: База данных >> Каталог базы данных >> Запись >> Поле записи.

Все записи в одном каталоге созданы по одному шаблону, и могут содержать только те поля,

которые содержатся в шаблоне. Например, в приложении E-Staff, существуют каталоги

vacancies, candidates, events и другие.

<логическое_условие> - выражение, имеющее результат типа boolean.

В логическом условии могут быть задействованы:

логические функции:  true(), false();

операторы сравнения:  =, !=, >=, <=, >, <;

 

<поле_записи> - обозначает поле записи из <каталога_базы_данных>,

по которому производится сортировка.


3. Примеры запросов XQuery

 

for $elem in vacancies where $elem/state_id = ‘vacancy_opened’ return $elem

(Выдать все записи из каталога vacancies, у  который поле state_id (Текущий статус)

 имеет значение ‘vacancy-opened’ (Вакансия открыта))

 

for $elem in vacancies where $elem/is_active = true() return $elem

(Выдать все записи из каталога vacancies, у  который поле is_active (Активный)

 имеет значение true (Вакансия активна))

 

for $elem in vacancies where $elem/start_date >= date(‘2011-06-27’)

and $elem/start_date <=date(‘2011-06-28T23:59:59’) return $elem

(Выдать все записи из каталога vacancies, у  которой поле start_date (Дата_открытия)

имеет значение >= 2011-06-27 и <= 2011-06-28)

 

4. Литералы.

 Простейший вид выражения XQuery — литерал (literal),

который представляет атомарное значение (константы).

 

57     литерал типа integer;

5.7    литерал типа decimal, поскольку он содержит десятичную точку;

"57"   литерал типа string;