序列和项

XQuery 数据模型基于序列的概念。 XQuery 表达式的值始终是一个序列。 序列是 0 个项或多个项的有序集合。 一个就是一个原子值或一个节点。

一个序列可以包含节点、原子值或者是节点和原子值的任意组合。 例如,以下每个值都可以表示为一个序列:

  • 36
  • <dog/>
  • (2, 3, 4)
  • (36, <dog/>, "cat")
  • ()
  • XML文档

一个节点可以出现在多个序列中,一个序列可以包含重复项。 一个序列不能是另一个序列的成员。 换句话说,序列不能嵌套。 当组合两个序列时,获得的结果始终是节点和原子值的平铺序列。 例如,将序列 (2, 3) 追加至序列 (3, 5, 6) 时将生成单个序列 (3, 5, 6, 2, 3)。 因为决不会出现嵌套序列,所以,组合这些序列时并不会生成 (3, 5, 6, (2, 3))。

单独出现的单个项目被建模为包含一个项目的序列。 例如,序列(2)和原子值2之间没有区别。

不包含任何项的序列称为空序列。 可使用空序列来表示缺少的信息或未知信息。