我正在與eXist開始一個新項目。我們將存儲幾百個代表手稿的TEI XML文檔。我們想要捕捉的一些東西是重複的,主要是人和地方。我的同事已經向TEI社區詢問了表示我們想要捕獲的策略,並且已經建議使用XInclude作爲減少重複的一種方式。exists-db:XQuery和包含XInclude的文檔
我已經快速地將XInclude添加到文檔中,並且序列化的XML確實呈現包含XML文件。但是,XQuery中缺少包含的文本。我注意到在eXist中的文檔(http://exist-db.org/exist/apps/doc/xinclude.xml)認爲:
存在,但在分貝系列化的時間,這意味着 查詢引擎將看到的XInclude標籤會被擴展之前擴展XIncludes。因此,您無法跨XIncludes查詢 - 除非您爲其創建自己的 代碼(例如XQuery函數)。儘管如此,我們當然希望 支持對xincluded內容的查詢。
查詢使用XInclude的文件的最佳做法是什麼?
我不知道我是否應該有一個「工作」序列化源TEI XML文件擴展XIncludes並將這些文件存儲在單獨的收藏?在這種情況下,file:serialize是這個任務的正確函數嗎?
我們在項目的開始,所以任何建議表示讚賞。
對不起,這個答覆很慢,而不是在原始問題中加一個例子。說實話,這是一個帶有一些項目信息的簡單單一文件,我將部分信息分割成單獨的文件來測試XInclude支持。它並不真正反映項目的組織結構,我需要根據您的答案來思考更多。我也會看看你的關於let子句的建議。 我會除了你的答案,因爲我的問題的答案 - 「查詢使用XInclude的文件的最佳做法是什麼?」 - 似乎是,「這取決於...」:) – MikeJ
一旦你有MWE,隨時修改你的問題。我有45萬tei/xml片段通過XInclude連接存在。所以答案的默認部分是:無論如何,只需幾行xQuery代碼即可。 – duncdrum