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

Nig*_*ton 1 schema xquery

我在第一次尝试让fn:id()XQuery函数做某事时失败了.

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

<bar>
    <foo id="a"/>
    <foo id="b"/>
    <foo id="c"/>
</bar>
Run Code Online (Sandbox Code Playgroud)

还有一个XQuery;

doc('bar.xml')/fn:id(("a", "c"))
Run Code Online (Sandbox Code Playgroud)

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

我还没有学习XML模式.可以fn:id()在不为bar.xml声明单独的模式文件的情况下工作吗?

Oli*_*lam 5

您需要指明您的id属性是id.

一种方法是将文件或DTD添加到指定此文档的文档中.

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

在相关说明中,您可能希望使用element-with-id()而不是id(). element-with-id()完成id()原本打算做的事情,并id出于兼容性原因保留在规范中.