Что такое конструктор элемента в xQuery? - PullRequest
0 голосов
/ 02 июля 2018

Я читаю книгу о xQuery , и она полна выражения, как конструктор элемента ... и мой вопрос:

Что такое конструктор элемента и является ли * {<expression>} "конструктором элемента?

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Я удивлен, что в книге следует использовать этот термин, не объясняя его, но ваш следующий порт захода должен соответствовать спецификации W3C XQuery,

https://www.w3.org/TR/xquery-31/#id-constructors

В отличие от многих языковых спецификаций, спецификации XQuery разработаны для удобства чтения обычными пользователями, при условии, что вы можете следовать BNF, и у них много примеров.

0 голосов
/ 02 июля 2018

Конструктор элемента создает элемент. Есть несколько способов сделать это в XQuery.

Фигурные скобки {} отмечают начало и конец вложенного выражения в XQuery. Поскольку вы можете использовать буквальный XML и вычисляемые выражения, фигурные скобки обозначают, когда вы покидаете статический контекст и вводите динамические конструкции. Аналогично тому, как вы используете <%@ page ... %> для директив JSP.

Используя прямой элемент конструктора , вы используете синтаксис XML для создания статической структуры XML.

Например:

  <book isbn="isbn-0060229357">
    <title>Harold and the Purple Crayon</title>
  </book>

С помощью вычисляемого конструктора элемента , узла элемента и содержимого и может генерироваться динамическая структура XML из выражений для имени элемента и его содержимого.

Например:

element book {
  attribute { "isbn" } { "isbn-0060229357" },
  <title>Harold and the Purple Crayon</title>
}

Вы также можете использовать выражение для вычисления имени элемента:

element { fn:concat("bo", "ok") } {
  attribute { "isbn" } { "isbn-0060229357" },
  <title>Harold and the Purple Crayon</title>
}
...