试图模拟XQuery函数fn:idref()但没有架构

时间:2011-06-22 09:53:50

标签: xml xquery saxon idref

我想在XML文档中搜索具有包含特定idrefs的{​​{1}}属性的元素。例如,给定此XML文档id;

doc.xml

我想要这个XQuery;

<doc>
   <x1 idrefs="foo bar">
      <x2 idrefs="world hello"/>
   </x1>
   <x3 idrefs="ipsum lepsum"/>
   <a xml:id="bar"/>
   <b xml:id="hello"/>
</doc>

返回此元素;

let $d := doc("doc.xml")
return $d/local:getref("hello")

我相信<x2 idrefs="world hello"/> 正是这样做的,但前提是fn:idref()有适当的架构。这可以在没有架构的情况下完成吗?

我正在使用Saxon XQuery处理器。

1 个答案:

答案 0 :(得分:3)

这似乎与

有关

How to use the XQuery fn:idref() function?

如果没有架构,则需要

//*[tokenize(@idrefs, ' ') = "hello"]