我想要一個全局變量,我可以在我的不同.xqy頁面中使用它。我可以在Marklogic Server的xquery中聲明這樣的變量嗎?我可以在Marklogic Server的xquery中聲明一個全局變量嗎?
9
A
回答
15
你可以在任何模塊中聲明變量。例如它是config.xqy。
declare variable $PRECISION as xs:integer := 4;
要使用此變量,您需要將該模塊導入到工作模塊中。
import module namespace conf = "http://your-namespace" at "config.xqy";
,並參考該變量:
$config:PRECISION
2
如果需要跨服務器訪問值,有用於存儲持久的鍵/值對在Marklogic XQuery的共享庫:
https://github.com/marklogic/commons/blob/master/properties/properties.xqy
而您可能已經考慮過這一點,但您也可以將全局數據存儲在數據庫的文檔中,並訪問w ith doc() - 或eval()如果您需要從不同的數據庫中獲取它。
5
如果您的應用程序在單個電子節點上運行,則可以使用server fields,這也是爲此用例設計的。
1
您有幾個選項。如果你需要一個全局常量變量,在@Andrew Orlov的答案中提到的config.xqy
方法非常棒,因爲你避免了對併發訪問properties.xml
文件的任何鎖定。
如果您需要一個可以跨節點集羣進行變異的變量,那麼通過@wst鏈接的property.xqy
示例似乎使用全局分配的名稱空間來嵌入可檢索的鍵和值。很聰明。但是,我不確定這是多大程度的變化。
電子節點來自@Eric Bloch的特定變量很好,但也請注意,它不會在系統重新啓動後繼續存在。
我很想知道這些如何比較性能明智。
相關問題
- 1. 我們可以在QML文件中聲明全局變量嗎?
- 2. 我可以在C#中聲明一個全局推斷變量嗎?
- 3. 聲明一個全局的Request.ServerVariable變量
- 4. 我可以在SASS mixin中聲明一個新的變量嗎?
- 5. 我可以在for循環中聲明局部變量嗎?
- 6. 在全局頭文件中聲明一個全局變量?
- 7. 在Marklogic的xquery庫模塊中創建一個全局地圖變量
- 8. 我如何在AngularJs中聲明一個全局變量2
- 9. XSLT:我可以在全局聲明一個變量,然後給它賦值
- 10. 可以在輸出變量後聲明一個變量嗎? PHP
- 11. 我可以在聲明後做一個變量final嗎?
- 12. 全局變量在android中的聲明
- 13. jquery widget factory - 我可以在_create或widget外部聲明全局變量嗎?
- 14. 我想爲QML中的標誌聲明一個全局變量
- 15. 聲明全局變量
- 16. 全局變量聲明
- 17. 我可以在PHP的類級聲明全局的東西嗎?
- 18. 在python中聲明一個函數中的全局變量
- 19. JavaScript;我如何聲明變量全局?
- 20. 在Arduino中聲明全局變量
- 21. 在perl中聲明全局變量
- 22. 在ActionScript中聲明全局變量?
- 23. 在Matlab中聲明全局變量
- 24. 在coffescript中聲明全局變量
- 25. 在yacc中聲明全局變量
- 26. 在Java中聲明全局變量
- 27. 在全局變量中聲明查詢
- 28. 在Python中聲明全局變量類
- 29. 在Swift中聲明全局變量
- 30. 在vb中聲明全局變量