XQuery - 是字符串隐式节点吗?

时间:2013-07-05 14:00:22

标签: xquery sequence nodes

e.g。

将下面描述为一系列文本节点是否准确?

("foo", "bar", "baz")

1 个答案:

答案 0 :(得分:3)

不,他们不是。字符串不等于文本节点,这是一个字符串序列。

文本节点的类型为Node,它也是item(这些是XQuery中最常用的数据类型)。字符串派生自xs:anyAtomicType,同样也是item

查看XQuery's data type diagram

确定项目类型

可以使用

构建一系列文本节点
(text { "foo" }, text { "bar" }, text { "baz" })

您可以使用typeswitch构造轻松确定节点的类型:

for $item in (text { "foo" }, "bar", 42)
return
  typeswitch($item)
    case text()
      return "text node"
    case xs:string
      return "string"
    default
      return "Something else"

继承类型

您还可以测试继承的类型:

for $item in (text { "foo" }, "bar", 42)
return
  typeswitch($item)
    case node()
      return "node"
    case xs:anyAtomicType
      return "anyAtomicType"
    default
      return "Something else"