【问题标题】:Ruby support for XML namespacesRuby 对 XML 命名空间的支持
【发布时间】:2010-09-19 21:06:31
【问题描述】:

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

【问题讨论】:

    标签: ruby xml namespaces


    【解决方案1】:

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

    在 ruby​​ 中生成任何 XML 的最快方法是使用 libxml-ruby - link to rdoc。 如果您的服务器有任何负载,这将是可行的方法。

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

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

    【讨论】:

    • 性能在这里并不是真正的问题,所以我最终选择了 REXML,因为它看起来是最快、最简单的解决方案,而且效果很好。非常感谢您的回复。
    【解决方案2】:

    我发现自己的情况与您的情况几乎相同(RESTful API 使用带有名称空间的 JAXB 完成)。

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

    项目驻留在此处: http://happymapper.rubyforge.org/

    这里有来源: http://github.com/jnunemaker/happymapper/tree/master

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

    希望这会有所帮助。

    -- 吉米齐默尔曼

    【讨论】:

      猜你喜欢
      • 2012-01-13
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      • 2015-07-07
      相关资源
      最近更新 更多