Scala 2.9.x中的XML支持状态

时间:2011-09-27 12:33:18

标签: xml scala maturity

我现在开始考虑使用Scala的XML支持来处理关键业务流程。在这方面,我想知道Scala中标准XML库的当前状态。

我已经阅读了一些与Scala 2.7和2.8 trunk相关的“旧”文章,其中声称XML处理对于scala 2.8是线程安全的,并且版本2.7.x中存在一些错误。 一些批评也一直在给XML类层次,但我想这是一个品味问题。

所以我想如果有人能回答这个问题,那么版本2.9.x的Scala XML库的当前状态是什么?

提前致谢。

4 个答案:

答案 0 :(得分:13)

Scala中有一个可用于XML的替代库, Anti-XML 。从主页:

  

Anti-XML是对scala.xml包的建议替代   Scala标准库。标准包已经过时了   定影。我们需要从坚实的基础开始,不受任何负担   向后兼容性。反XML旨在提高三大质量   领域:可用性,可靠性,性能

如果您正在认真考虑使用XML,那么值得关注Anti-XML。

可在此处获取来源:https://github.com/djspiewak/anti-xml

答案 1 :(得分:11)

让我这样回答:

或者,说实话,很多人都不满意。毕竟,人们正在编写完整的替代品,而不是试图“修复”图书馆。而且,谈到修复,我有一个修复程序,将操作从O(n ^ 2)转换为O(n)提交了很长时间,当有人再次打开同样的问题时,我甚至不记得打开它了之前。

请注意,Lift使用标准库XML,据我所知,大多数其他Web框架也是如此(我怀疑Play没有),所以它不像它不可用。

答案 2 :(得分:2)

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

尽管如此,仍有一些设计批评,一些人坐下来决定从头开始编写一个更好的替代方案,Anti-XML。

如果一切顺利,您将来还有一个选择。

答案 3 :(得分:2)

Scales Xml是我对这个问题的回答。并不是说我发现Scala XML的怪癖很糟糕,但这种方法本身并不适合我,并提出了一个问题“如果你将内容与树分开并统一推拉就会怎么样”。

经过多次播放后,我发现了很多很好的方法来利用类型系统,以便使XML的使用对于许多活动来说更简单,比Scala XML更正确,更快。

您很快意识到,在编写替代库时,Scala XML需要花费多少精力和精力。它的杀手锏是:

  1. 提供默认库
  2. 内置XML语法
  3. 对于简单的开箱即用,很难被击败(虽然我有信心我已经做到了^ _ ^)。

    重要的是,像Anti-XML这样的其他更年轻的替代品已经出现,因为选择往往是推动创新的动力。我只是建议用户看看他们真正需要什么,而不是假设替代品自动提供最佳选择。