Ruby对XML命名空间的支持

时间:2008-10-29 20:09:00

标签: ruby xml namespaces

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

2 个答案:

答案 0 :(得分:9)

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

在ruby中生成任何XML的最快方式是使用libxml-ruby - link to rdoc。 如果您的服务器完全有任何负载,那么这将是最佳选择。

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

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

答案 1 :(得分:1)

我发现自己与你的情况差不多(使用JAXB w /名称空间完成的RESTful API)。

我认为在Ruby中使用XML最有希望的项目是HappyMapper。它是一种XML绑定库(沿着早期JAXB类型实现的方式)。它最近获得了很大的吸引力,我们中的一些人一直致力于提供良好的命名空间支持。

该项目位于此处: http://happymapper.rubyforge.org/

源于此处: http://github.com/jnunemaker/happymapper/tree/master

该项目目前不支持从Ruby Objects创建XML,原作者表示不希望提供该支持,但我将在我的fork中提交一些功能: http://github.com/jimmyz/happymapper/tree/master

希望这有帮助。

- 吉米齐默尔曼