我现在开始考虑使用Scala的XML支持来处理关键业务流程。在这方面,我想知道Scala中标准XML库的当前状态。
我已经阅读了一些与Scala 2.7和2.8 trunk相关的“旧”文章,其中声称XML处理对于scala 2.8是线程安全的,并且版本2.7.x中存在一些错误。 一些批评也一直在给XML类层次,但我想这是一个品味问题。
所以我想如果有人能回答这个问题,那么版本2.9.x的Scala XML库的当前状态是什么?
提前致谢。
答案 0 :(得分:13)
Scala中有一个可用于XML的替代库, Anti-XML 。从主页:
Anti-XML是对scala.xml包的建议替代 Scala标准库。标准包已经过时了 定影。我们需要从坚实的基础开始,不受任何负担 向后兼容性。反XML旨在提高三大质量 领域:可用性,可靠性,性能
如果您正在认真考虑使用XML,那么值得关注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需要花费多少精力和精力。它的杀手锏是:
对于简单的开箱即用,很难被击败(虽然我有信心我已经做到了^ _ ^)。
重要的是,像Anti-XML这样的其他更年轻的替代品已经出现,因为选择往往是推动创新的动力。我只是建议用户看看他们真正需要什么,而不是假设替代品自动提供最佳选择。