如何使用XQuery fn:id()函数?

时间:2011-06-15 20:20:40

标签: schema xquery

我第一次尝试让fn:id() XQuery函数无法执行某些操作时失败。

到目前为止,我有一个名为bar.xml的文档;

<bar>
    <foo id="a"/>
    <foo id="b"/>
    <foo id="c"/>
</bar>

和XQuery;

doc('bar.xml')/fn:id(("a", "c"))

但我尝试的所有东西似乎都会返回一个空集。

我还没有学习XML模式。如果没有为bar.xml声明单独的模式文件,fn:id()可以工作吗?

1 个答案:

答案 0 :(得分:5)

您需要指明您的ID属性是ID。

执行此操作的一种方法是向指定此内容的文档添加架构或DTD。

另一种(更容易)方法是在文档中使用xml:id代替id

在相关说明中,您可能希望使用element-with-id()代替id()element-with-id()执行id()最初打算执行的操作,id出于兼容性原因保留在规范中。