xQuery 中的元素构造函数是什么?

dze*_*ker 3 xquery

我正在读一本关于 xQuery 的书 ,它充满了像元素构造函数这样的表达式......我的问题是:

什么是元素构造函数?“ {<expression>}”是元素构造函数吗?

Mad*_*sen 6

元素构造函数创建一个元素。您可以通过多种方式在 XQuery 中执行此操作。

大括号标记XQuery 中封闭表达式{}的开始和结束。由于您可以使用文字 XML 和计算表达式,因此大括号表示您何时离开静态上下文并进入动态构造。与 JSP 指令的使用方式类似。<%@ page ... %>

通过直接元素构造函数,您可以使用 XML 语法来创建静态 XML 结构。

例如:

  <book isbn="isbn-0060229357">
    <title>Harold and the Purple Crayon</title>
  </book>
Run Code Online (Sandbox Code Playgroud)

使用计算元素构造函数、元素节点和内容,可以从元素名称及其内容的表达式生成动态 XML 结构。

例如:

element book {
  attribute { "isbn" } { "isbn-0060229357" },
  <title>Harold and the Purple Crayon</title>
}
Run Code Online (Sandbox Code Playgroud)

您还可以使用表达式来计算元素名称:

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