Поддержка Ruby для пространств имен XML - PullRequest
7 голосов
/ 29 октября 2008

Я работаю в небольшой компании, и наша производственная система использует RESTful API, созданный вручную, реализованный на Java с JAXB. Теперь мы обнаруживаем, что привлекаем клиентов, которые используют Ruby on Rails, и мне нужно придумать эталонную реализацию, чтобы показать клиентам, как использовать наш API в Ruby. Я бы хотел просто сказать им, чтобы они использовали ActiveResource, но XML, требуемый нашим API, использует (и абсолютно требует) пространства имен. К сожалению, у нас уже есть ряд других клиентов, которые уже интегрировали этот API, поэтому об исключении использования пространств имен не может быть и речи. Каков наилучший способ создания XML с использованием пространств имен в Ruby?

Ответы [ 2 ]

9 голосов
/ 29 октября 2008

«Лучший», очевидно, зависит от ваших потребностей.

Самый быстрый способ генерации любого XML в ruby ​​- это использовать libxml-ruby - ссылку на rdoc . Если ваш сервер получает какую-либо нагрузку, это будет путь.

Самый простой способ создания любого XML в ruby ​​- это использовать REXML в качестве части стандартной библиотеки, и поэтому он "просто работает". Если ваше поколение XML является чем-то, что вряд ли когда-либо будет использовано, вероятно, проще всего использовать rexml.

Оба поддерживают пространства имен XML - проверьте rdoc, чтобы узнать, как установить и получить пространства имен

1 голос
/ 09 февраля 2009

Я нахожусь в почти такой же ситуации, как ваша (RESTful API сделан с JAXB с пространствами имен).

Я думаю, что наиболее перспективным проектом для работы с XML в Ruby является HappyMapper. Это своего рода библиотека связывания XML (по аналогии с ранней реализацией типа JAXB). В последнее время он набирает обороты, и некоторые из нас работают над обеспечением хорошей поддержки пространства имен.

Проект находится здесь: http://happymapper.rubyforge.org/

с источником здесь: http://github.com/jnunemaker/happymapper/tree/master

В настоящее время проект не поддерживает создание XML из Ruby Objects, и первоначальный автор не выразил желания предоставлять такую ​​поддержку, но я добавлю некоторые функциональные возможности для этого в своем форке: http://github.com/jimmyz/happymapper/tree/master

Надеюсь, это поможет.

- Джимми Циммерман

...