Использование saxon и XPath 3.1 для анализа JSON файлов - PullRequest
0 голосов
/ 17 июня 2020

Это для случая вызова Saxon из приложения Java. Я понимаю, что Saxon может использовать XPath 3.1 для выполнения запросов к файлам JSON. Пара вопросов по этому поводу:

  1. Где пример как это сделать? Я провел поиск и нашел много ответов о том, как это сделать, но заметил, как читать в файле и выполнять запросы. Это то же самое, что и XML?
  2. Можно ли иметь файл схемы для JSON, чтобы возвращаемые значения были правильно набраны? Если да, то как?
  3. Может ли XQuery также выполнять запросы к JSON?
  4. Какая версия Saxon поддерживает это? (Мы используем 9.9.1.1 и хотим знать, нужно ли мне обновиться.)

1 Ответ

0 голосов
/ 18 июня 2020

Технически вы не запускаете запросы к JSON файлам; вы запускаете их в соответствии со структурой данных, полученной в результате анализа файла JSON, который представляет собой структуру карт и массивов. Вы можете проанализировать файл JSON с помощью функций parse- json () или json -do c (), а затем запросить результат, используя операторы, которые работают с картами и массивами. Некоторые из них (и примеры их использования) показаны в spe c at

https://www.w3.org/TR/xpath-31/#id -maps-and-array

Поиск в Google по запросу maps массивы JSON XPath 3.1 "находит довольно много полезного материала. Или возьмите книгу Присциллы Уолмсли: http://www.datypic.com/books/xquery/chapter24.html

Типы данных: типы данных строки, числа и логические значения, которые являются внутренними от c до JSON, автоматически распознаются по их форме. . Нет возможности выполнять дальнейший ввод с использованием схемы.

XQuery - это надмножество XPath, но что касается JSON / Maps / Arrays, я думаю, что возможности XPath и XQuery точно такие же .

Saxon добавляла немного дополнительных функций и производительности в каждом последующем выпуске. 9.9 довольно полно охватывает; 10.0 добавляет некоторые оптимизации (например, новую внутреннюю структуру данных для карт, все ключи которых являются строками, например, при синтаксическом анализе JSON). Подробности изменений в последующих выпусках Saxon подробно описаны в http://www.saxonica.com/documentation/index.html#! Changes

...