Scala 2.9.x中XML支持的现状

18

我目前正在研究使用Scala的XML支持进行业务关键流程。在这方面,我想知道Scala标准XML库的当前状态。

我读过一些与Scala 2.7和2.8的旧文章,其中指出XML处理将会在Scala 2.8中是线程安全的,并且版本2.7.x中存在几个错误。对于XML类层次结构也提出了一些批评,但我认为那是一个品味的问题。

因此,我想知道是否有人能回答这个问题:Scala 2.9.x版本的XML库目前处于什么状态?

先感谢您的帮助。


5
参见:https://github.com/djspiewak/anti-xml - Tomasz Nurkiewicz
4个回答

13

在Scala中有一个可替代XML的库,Anti-XML。从主页上可以看到:

Anti-XML是Scala标准库中scala.xml包的替代方案。该标准包已经过时且难以修复。我们需要从头开始,在坚实的基础上,并摆脱向后兼容的负担。 Anti-XML在三个主要领域中追求质量:易用性、可靠性和性能。

如果你想认真使用XML,那么值得考虑一下Anti-XML。

源代码在这里可用:https://github.com/djspiewak/anti-xml


11

让我这样回答:

换句话说,许多人对此并不满意。毕竟,人们在尝试“修复”库之前会编写完整的替代方案。而且,说到修复,我曾经提交了一个将操作从 O(n^2) 优化为 O(n) 的修复方案,但等了很久也没有得到任何回应,直到有人再次打开同样的问题时,我才想起自己以前曾经打开过这个问题。

请注意,Lift 使用标准库的 XML,据我所知,大多数其他 Web 框架也是如此(我怀疑 Play 不是这样),因此它并不是无法使用。


我听说自Scala 2.11版本开始,scala.xml将被淘汰。是这样吗? - Incerteza

2

Scala XML是稳定的,受支持的,并且在很长一段时间内都不会消失。

尽管如此,也有一些设计上的批评,因此有些人坐下来从头开始编写了一个更好的替代品,即Anti-XML。

如果一切顺利,您将在未来拥有另一个选择。


2
Scales Xml是我对那个问题的答案。并不是我发现Scala XML的怪癖有多糟糕,而是这种方法本身让我感到不舒服,并引发了一个问题:“如果您将内容与树分离并统一推拉会怎样”。
经过多次尝试,我发现了很多利用类型系统使XML使用更简单、更正确和更快速的酷炫方法。
当你写一个替代库时,你很快就会意识到Scala XML需要多少思考和努力。它的杀手级功能包括:
  1. 默认库提供
  2. 内置XML语法
对于简单的开箱即用,很难超越(虽然我相信我已经做到了 ^_^)。
其他年轻的替代方案如Anti-XML的出现非常重要,因为选择通常是推动创新的原因。我只建议用户看看他们真正需要什么,而不是假定替代方案自动提供最佳选择。

这似乎不再适用于Scala 2.11 - 这是不再必要了,还是缺乏兴趣/时间/...? - Suma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接