Конструкторы
Конструкторы создают XML-структуры в запросе. XQuery обеспечивает конструкторы для создания элементных узлов, узлов атрибутов, узлов документа, текстовых узлов, узлов инструкций обработки и узлов комментариев. XQuery обеспечивает два вида конструкторов: прямые конструкторы и вычисляемые конструкторы.
Прямые конструкторы используют XML-подобную нотацию для создания структур XML внутри запроса. XQuery предоставляет прямые конструкторы для создания элементных узлов (которые могут включать в себя узлы атрибутов, текстовые узлы и вложенные элементные узлы), узлов инструкций обработки и узлов комментариев. Например, следующий конструктор создает элемент book, который содержит атрибут и несколько вложенных элементов:
<book isbn="isbn-0060229357">
<title>Harold and the Purple Crayon</title>
<author>
<first>Crockett</first>
<last>Johnson</last>
</author>
</book>
Вычисляемые конструкторы используют нотацию на основе вложенных выражений для создания структур XML внутри запроса. Вычисляемый конструктор начинается с ключевого слова, которое идентифицирует тип создаваемого узла, за которым следует имя узла и вложенное выражение, которое вычисляет содержимое узла. XQuery предоставляет вычисляемые конструкторы элементных узлов, узлов атрибутов, узлов документов, текстовых, узлов инструкций обработки и узлов комментариев. Например, следующий запрос содержит вычисляемые конструкторы, которые генерируют тот же результат, что и прямой конструктор, описанный выше:
element book {
attribute isbn {"isbn-0060229357" },
element title { "Harold and the Purple Crayon"},
element author {
element first { "Crockett" },
element last {"Johnson" }
}
}
- Вложенные выражения в конструкторах
Вложенные выражения используются в конструкторах, чтобы обеспечить вычисляемые значения для содержимого элементов и атрибутов. Эти выражения вычисляются и заменяются на их значения, когда конструктор обрабатывается. Вложенные выражения вложены в фигурные скобки ({}), чтобы они отличались от литерального текста.
- Прямые конструкторы элементов
Прямые конструкторы элементов используют XML-подобную нотацию для создания элементных узлов. Конструируемый узел может быть простым элементом или сложным элементом, который содержит атрибуты, текст и вложенные элементы.
- Вычисляемые конструкторы элементов
Вычисляемый конструктор элементаа создает элементный узел, для которого содержимое узла вычисляется на основании вложенных выражений.
- Вычисляемые конструкторы атрибутов
Вычисляемый конструктор атрибута создает узел атрибута, для которого значение атрибута вычисляется на основании вложенных выражений.
- Вычисляемые конструкторы узла документа
Конструкторы узла документа являются вычисляемыми конструкторами. Конструктор узла документа создает узел документа, для которого содержимое вычисляется на основании вложенных выражений. Конструктор узла документа полезен, когда результатом запроса является полный документ.
- Конструкторы текстовых узлов
Конструкторы текстовых узлов являются вычисляемыми конструкторами. Конструктор текстового узла создает текстовый узел, содержимое которого вычисляется на основании вложенных выражений.
- Конструктор инструкции обработки
Конструкторы инструкций обработки создают узлы инструкций обработки. XQuery обеспечивает и прямые, и вычисляемые конструкторы для создания инструкций обработки.
- Конструкторы комментариев
Конструкторы комментариев создают узлы комментариев. XQuery обеспечивает и прямые, и вычисляемые конструкторы для создания узлов комментариев.