2011-09-27 33 views
18

我目前正在開始研究Scala對業務關鍵流程的XML支持。在這方面,我想知道Scala中標準XML庫的當前狀態。Scala 2.9.x中的XML支持狀態

我已經閱讀了一些與Scala 2.7和2.8 trunk有關的「舊」文章,其中指出XML處理對於scala 2.8是線程安全的,並且在2.7.x版中存在一些bug。 一些批評也一直在給XML類層次,但我想這是一個有趣的問題。

所以我想如果有人可以回答這個問題,版本2.9.x的Scala XML庫的當前狀態是什麼?

在此先感謝。

+5

另請參見:https://github.com/djspiewak/anti-xml –

回答

11

讓我這樣解答:

或者,把它變成文字,很多人都不滿意。畢竟,人們正在編寫完整的替代方案,而不是試圖「修復」圖書館。而且,在解決問題的時候,我有一個解決方案,把操作從O(n^2)轉到O(n)這麼長時間,當有人再次打開同樣的問題時,我甚至都不記得打開它之前。

請注意,Lift使用標準庫XML,據我所知,其他大多數Web框架也是如此(我懷疑Play不會),所以它不像它是無法使用的。

+0

我聽說scala.xml自Scala 2.11以後就會被淘汰。是這樣嗎? –

13

在Scala中有一種可用於XML的替代庫,Anti-XML。來自主頁:

Anti-XML是對 Scala標準庫中scala.xml軟件包的替代品。標準包已經過時,並且超出了 修復。我們需要重新開始,在堅實的基礎上,並且不會因爲向後兼容而負擔不起。反XML的目的是爲在三大領域 質量:可用性,可靠性,性能

如果你正在考慮使用XML重視,那麼它是值得看的反XML。

源可以在這裏找到:https://github.com/djspiewak/anti-xml

+0

從Scala 2.11開始,反XML看起來已經放棄。 – Suma

2

斯卡拉XML是穩定的,支持的,不會走很長一段時間。

儘管如此,還是有一些設計上的批評,一些人坐下來決定從頭開始寫一個更好的替代方案,即Anti-XML。

如果一切正常,您將在未來有更多的選擇。

2

Scales Xml是我對這個問題的回答。這並不是說我發現Scala XML的怪異性不好,但是這種方法本身並沒有很好地解決我的問題,並提出了「如果將內容從樹中分離出來並統一推拉」的問題。

經過大量的工作,我發現了許多很酷的方式來利用類型系統,以便使XML的用法更簡單一些活動,比Scala XML更正確更快。

在編寫替代庫時,您很快就會意識到,Scala XML有多少思想和精力。它的殺手鐗是:

  1. 使用默認的庫
  2. 提供內置XML語法

簡單開箱使用它很難被擊敗的(雖然我有信心,我已經做了那^ _ ^)。

重要的是,像Anti-XML這樣的其他更新的替代品已經出現作爲選擇往往是推動創新的原因。我只是建議用戶看看他們真正需要什麼,而不是假設替代品會自動提供最佳選擇。

+0

Scala 2.11似乎已不再保留 - 是不再需要還是缺少興趣/時間/ ...? – Suma