-1

一个真正的 XQuery 初学者问题,但我似乎无法解决我的问题。

我有一个 XML 数据库 videos.xml,其中演员和电影存储为节点(我认为?)

演员都有单独的 ID,但它们不是作为属性存储的,而是作为其他东西存储的(可能有一些 ID 的内置属性吗?)。电影都有一个或多个actorRef 属性引用actor-ID。

我现在要查询的是所有引用某个演员 ID 的电影。假设 Keanu Reeves 的 ID 为“001”,那么我们想要找到所有引用此 ID 的电影 -> 例如 Matrix 和 The Devil's Advocate。是否有一些内置功能?

4

1 回答 1

0

同意评论者的观点,即需要更多,但您似乎正在寻找XPath 和 XQuery 函数和运算符规范 3.1 版的新功能系列fn:id(),. 以下是从规范中获取的一些插图:fn:idref()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属性,因此选择了employee 元素。)。

表达式element-with-id('E21256')/name()也返回"employee"。(假设元素作为模式验证的结果empnr被赋予了类型,则该元素将具有该属性并因此被选中。)xs:IDis-id

该表达式idref('ID21256')将返回引用该元素的任何元素或属性employee。(假设引用节点被赋予类型xs:IDREFxs:IDREFS作为模式验证的结果,则该节点将具有该is-idrefs属性。)

于 2016-09-30T13:31:18.870 回答