2016-09-29 86 views
-1

一個真正的XQuery初學者問題,但我似乎無法解決我的問題。XQuery和idref

我有一個XML數據庫videos.xml,在演員和電影(我想?)作爲存儲節點

演員都有獨立的ID,但它們不是存儲屬性,但作爲別的東西(是否有一些ID的內置屬性?)。這些電影都有一個或多個參考actor-id的actorRef屬性。

我想要現在查詢的是所有引用特定actor-id的電影。假設Keanu Reeves的ID爲「001」,那麼我們希望找到所有引用該ID的電影 - >例如矩陣和惡魔的倡導者。有一些內置的功能嗎?

+0

請提供您的XML示例以及您已嘗試過的內容。 http://stackoverflow.com/help/how-to-ask – wst

回答

0

同意,更多的是需要提意見,但你似乎在尋找家庭的功能,fn:id()fn:idref(),和新來的XPath和XQuery函數和操作規範,fn:element-with-id()的3.1版本。以下是規範採取了一些插圖:

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:IDREFxs:IDREFS,則節點將具有is-idrefs屬性。)