Безумие XQuery

Довольно часто мне бывает нужно выделить часть данных по некоторым критериям из файлов формата XML. И каждый раз я писал небольшие скрипты или даже целые Java приложения, которые разбирали XML и анализируя файл выдавали необходимые данные. Сегодня я решил так не делать и попытался воспользоваться стандартом XQuery, предназначенным для выборок данных из XML.

Задача была простая — выбрать из файла Gnucash список счетов (Id, описание) и все транзакции (Описание, с какого счета, на какой счёт, сколько).

Первое на что стоит обратить внимание — очень много реализаций стандарта XQuery и целая куча редакторов. Редакторы есть как онлайн так и для настольных систем с ОС Windows / Linux.

Начал я изучение XQuery со статьи на Wiki, в которой не написано ну совсем ничего полезного. Потом продолжил поиск на w3c и stackoverflow. Кривая поиска вывела меня на довольно годный проприетарный редактор oXygen, его триальную версию я и поставил.

oXygen XQuey editorДолго искал как запустить правку XQuery:

  1. Создать XQuery файл
  2. Перейти в Window — Open perspective — XQuery Debugger

Получились вот такие небольшие скрипты:

Раздражает необходимость объявления всех используемых пространств имён. Непривычно отсутствие операторных скобок, хотя выражения for могут быть вложенными. Ну а остальное вполне себе съедобно.

Позже я заглянул в IntelliJ Idea и нашёл плагин XQuery Support, который оказался очень удобен для редактирования и отладки.

idea-xquery

Общее впечатление как и об XSLT/XSD — ужасный переусложнённый инструмент с небольшими возможностями и огромным зоопарком реализаций. Ну благо что свои задачи решает и работает. Всем советую для вспомогательных задач обработки данных. Только системы на нём не пишите ради всего святого.

Facebooktwittergoogle_plusredditlinkedin