2008-10-29 109 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

希望這會有所幫助。

- 吉米·齊默爾曼