XPath 3 - XPath 3

XPath 3 это последняя версия XML Path Language, а язык запросов для выбора узлов в XML документы. Он заменяет XPath 1.0 и XPath 2.0.

XPath 3.0 стал Рекомендация W3C 8 апреля 2014 г., а XPath 3.1 стал Рекомендация W3C 21 марта 2017 г.

Новые возможности XPath 3.0

В сравнении с XPath 2.0, XPath 3.0 добавляет следующие новые функции:

Встроенные выражения функций
Анонимные функции может быть создан в выражение контекст. Например, выражение функция ($ a как xs: double, $ b как xs: double) как xs: double {$ a * $ b} создает функцию, которая возвращает произведение двух своих аргументов. Выражение collection () / (пусть $ a: =. return function () {$ a}) создает последовательность функций, каждая из которых возвращает отдельный узел из коллекции.
Вызов динамических функций
Значения функций могут вызываться без ссылки по имени. Например, $ f [2] («Привет!») выбирает второй элемент из последовательности $ f, и вызывает ее как функцию, передавая строку "Всем привет" как аргумент.
Типы союзов
Типы союзов, как определено в Схема XML, может использоваться в преобразование типов и функция типовые подписи.
Литералы пространства имен
Пространства имен XML можно ссылаться, используя фигурные скобки URI литералы. Например, полное имя математика: пи может быть расширен до Q {http://www.w3.org/2005/xpath-functions/math} пи, встраивая URI пространства имен в префикс.
Оператор конкатенации строк
Новый || оператор может использоваться для конкатенация строк: $ a || $ млрд эквивалентно fn: concat ($ a, $ b).
Оператор отображения
Новый ! оператор выполняет простое сопоставление: E1! E2 оценивает E2 для каждого элемента в последовательности E1, и объединяет полученные элементы. Это сравнимо с оператором пути /, но ! Оператор не выполняет устранение дубликатов и не документирует результаты.

Новые возможности XPath 3.1

XPath 3.1 в основном добавляет поддержку множество и карта (ассоциативный массив ) типы данных. Эти типы и связанные с ними функции предназначены для облегчения работы с JSON данные.

Еще одно нововведение - оператор стрелки. => для объединения функций. Например, выражение XPath 2.0

содержит (верхний регистр (подстрока перед ($ in, '')), 'X')

теперь можно написать

$ in => substring-before ('') => верхний регистр () => содержит ('X')

Рекомендации

  • "XML Path Language (XPath) 3.0". Консорциум World Wide Web. 8 апреля 2014 г.
  • "XML Path Language (XPath) 3.1". Консорциум World Wide Web. 21 марта 2017.