(c) Larry Ewing, Simon Budig, Garrett LeSage
с 1994 г.

Кафедра Информатики и Математического Обеспечения

ПетрГУ | ИМиИТ | О кафедре | Проекты | Лаборатория ИТС | Семинары НФИ/AMICT
Сотрудники | Учебный процесс | Табель-календарь | Курсовые и выпускные работы
Вычислительные ресурсы | Публикации | Архив новостей | Контактная информация (English)

ЛАБОРАТОРНАЯ РАБОТА № 3

Необходимо используя средство IPSI-XQuery Interpreter составить запросы на языке XQuery.

Все дальнейшие запросы делаются с файлом library.xml

Практика:

  • Создать список имен авторов и книг, написанных каждый автором, отделив имя автора от его фамилии и записав их в отдельных элементах.
  • Выбрать книги, названия которых заканчиваются на "gy" и (and) узлы, содержающие слово "Kluwer".
  • Вывести название книги и соавторов (в документе второй, третий и т.д. элемент author).
  • Подсчитать количество книг каждого автора.
  • Определить функцию, которая будет принимать выражение типа <hello world> и превращать его в строковую переменную с заглавными буквами без пробелов <HelloWorld>. Использовать ее для содержимого элементов title. На выходе получить документ XML c измененным содержимым элементов title.

P.S. Используйте следующие функции:

  1. exists(seq) - дает значение true, если последовательность seq непустая
  2. contains(s,sub) - возвращает true, если строка s содержит строку sub
  3. ends-with(s, sub) - возвращает значение true, если строка s заканчивается символами строки sub
  4. local-name() - локальное имя текущего узла
  5. string(.) - возвращает текстовый узел (рассматривается название узла как строка)
  6. concat(s1,s1,...) - сцеаляет строки в одну строку.
  7. tokenize(s,pat) - разбивает строку s на последовательность строк, используя в качестве разделителя шаблон pat.
  8. upper-case(s) - переводит все буквы строки s в верхний регистр.

Теория:

(по языку Xpath)

  • Для чего применяется язык XPath?
  • Что такое ось поиска?
  • Что такое шаг, направляемый фильтром поиска?

(по языку Xquery)

  • Каков минимальный состав выражения-запроса?
  • Можно ли в языке Xquery организовать вложенные запросы?
  • Сколько заголовков for и let может быть в запросе?