2008-10-29 96 views
7

我在一家小公司工作,我们的生产系统使用手动RESTful API,使用JAXB以Java实现。我们现在发现我们正在接触使用Ruby on Rails的客户,并且我必须提供一个参考实现来向客户展示如何在Ruby中使用我们的API。我希望能够告诉他们使用ActiveResource,但我们的API所需的XML使用(并且绝对需要)命名空间。不幸的是,我们已经有很多已经集成了这个API的其他客户,所以删除命名空间的使用是不可能的。在Ruby中用命名空间生成XML的最佳方式是什么?Ruby对XML名称空间的支持

回答

9

“最好”显然取决于您的需求。

最快方式产生红宝石任何XML是使用libxml-ruby - link to rdoc。 如果你的服务器完全得到任何负载,这将是要走的路。

最简单在ruby中生成任何XML的方法是使用REXML,因为它是标准库的一部分,因此它“正常工作”。如果您的XML代是几乎没有被使用过的,那么使用rexml可能更容易。

两者都支持XML命名空间 - 检查rdocs以了解如何设置和获取命名空间

+0

性能是不是真的在这里的一个问题,所以我结束了REXML去,因为它看起来像最快捷,最简单的解决方案,它的工作相当不错。非常感谢您的回复。 – 2008-11-04 18:42:12

1

,我发现自己在几乎相同的情况和你(REST的API与JAXB做W /命名空间)。

我认为在Ruby中使用XML最有前途的项目是HappyMapper。它是一种XML绑定库(遵循早期的JAXB类型实现)。最近它获得了很多的关注,并且我们中的一些人一直致力于提供良好的命名空间支持。

该项目所在的位置: http://happymapper.rubyforge.org/

与源位置: http://github.com/jnunemaker/happymapper/tree/master

该项目目前不支持XML的创作从Ruby对象,以及原作者已表示无意提供支持,但我会在我的叉中提交一些功能: http://github.com/jimmyz/happymapper/tree/master

希望这会有所帮助。

- 吉米·齐默尔曼