[英]XQuery and idref
一个真正的 XQuery 初学者问题,但我似乎无法解决我的问题。
我有一个 XML 数据库videos.xml,其中演员和电影作为节点存储(我认为?)
演员都有单独的 ID,但它们不是作为属性存储的,而是作为其他东西存储的(是否有一些 ID 的内置属性?)。 这些电影都有一个或多个引用 actor-ID 的 actorRef 属性。
我现在要查询的是所有引用某个演员 ID 的电影。 假设 Keanu Reeves 的 ID 为“001”,那么我们想要找到所有引用此 ID 的电影 -> 例如 Matrix 和 The Devil's Advocate。 是否有一些内置功能?
同意需要更多评论者的意见,但您似乎正在寻找函数系列fn:id()
、 fn:idref()
以及 XPath 和 XQuery 函数和运算符规范 3.1 版的新功能fn:element-with-id()
。 以下是规范中的一些插图:
let $emp :=
<employee xml:id="ID21256">
<empnr>E21256</empnr>
<first>John</first>
<last>Brown</last>
</employee>
表达式id('ID21256')/name()
返回"employee"
。 ( xml:id
属性具有is-id
属性,因此员工元素被选中。)。
表达式element-with-id('E21256')/name()
也返回"employee"
。 (假设empnr
元素的类型为xs:ID
作为模式验证的结果,该元素将具有is-id
属性并因此被选中。)
表达式idref('ID21256')
将返回引用employee
元素的任何元素或属性。 (假设引用节点的类型为xs:IDREF
或xs:IDREFS
作为模式验证的结果,该节点将具有is-idrefs
属性。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.