我目前开始研究使用 Scala 的 XML 支持来支持业务关键流程。在这方面,我想知道 Scala 中标准 XML 库的当前状态是什么。
我已经阅读了一些与 Scala 2.7 和 2.8 主干相关的“旧”文章,其中指出 XML 处理对于 scala 2.8 来说是线程安全的,并且在 2.7.x 版本中有几个错误。一些批评也一直在对 XML 类层次结构给出,但我想这是一个品味问题。
所以我想如果有人可以回答这个问题,Scala XML 库 2.9.x 版的当前状态是什么?
提前致谢。
Scala 中有一个可用于 XML 的替代库Anti-XML。从主页:
Anti-XML 是 Scala 标准库中 scala.xml 包的提议替代品。标准包已过时且无法修复。我们需要在坚实的基础上重新开始,并摆脱向后兼容性的负担。Anti-XML 旨在三个主要领域的质量:可用性、可靠性、性能
如果您正在认真考虑使用 XML,那么值得一看 Anti-XML。
让我这样回答:
或者说,很多人不满意。毕竟,人们正在编写完整的替代方案,而不是试图“修复”库。而且,说到修复,我有一个修复,它把操作从 O(n^2) 变成了 O(n) 提交了很长时间,以至于当有人再次打开同样的问题时,我什至不记得打开过它前。
请注意,Lift 使用标准库 XML,据我所知,大多数其他 Web 框架也是如此(我怀疑 Play 没有),所以它并不是不可用。
Scales Xml是我对这个问题的回答。并不是我发现 Scala XML 的怪癖不好,而是这种方法本身并不适合我,并提出了一个问题“如果你将内容从树中分离出来并统一推送和拉取会怎样”。
在玩了很多之后,我发现了许多利用类型系统的很酷的方法,以便使 XML 对许多活动的使用更简单,比 Scala XML 更正确和更快。
您很快就会意识到,在编写替代库时,在 Scala XML 中投入了多少思想和努力。它的杀手锏特征是:
对于简单的开箱即用用法,它很难被击败(尽管我相信我已经做到了^_^)。
重要的是,Anti-XML 等其他较年轻的替代品已作为选择出现,这往往是推动创新的动力。我只是建议用户看看他们真正需要什么,而不是假设替代品会自动提供最佳选择。
Scala XML 是稳定的、受支持的,并且不会在很长一段时间内消失。
尽管如此,还是提出了一些设计批评,一些人坐下来决定从头开始编写一个更好的替代方案,即 Anti-XML。
如果一切顺利,您将来会有一个额外的选择。