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

«Лучшее», очевидно, зависит от ваших потребностей.
самый быстрый способ сгенерировать любой XML в ruby - использовать libxml-ruby - ссылка на rdoc. Если ваш сервер вообще получает какую-либо нагрузку, это будет правильный вариант.
самый легкий способ генерировать любой XML в ruby - использовать REXML как часть стандартной библиотеки и, следовательно, он «просто работает». Если ваша генерация XML - это то, что почти никогда не используется, вероятно, проще просто использовать rexml.
Оба поддерживают пространства имен XML - проверьте rdocs, чтобы узнать, как установить и получить пространства имен.
Я оказался в почти такой же ситуации, как и ваша (RESTful API, выполненный с помощью JAXB с пространствами имен).
Я считаю, что наиболее перспективным проектом для работы с XML в Ruby является HappyMapper. Это своего рода библиотека привязки XML (по аналогии с ранней реализацией типа JAXB). В последнее время он набирает обороты, и некоторые из нас работают над обеспечением хорошей поддержки пространств имен.
Проект находится здесь: http://happymapper.rubyforge.org/
с источником здесь: http://github.com/jnunemaker/happymapper/tree/master
В настоящее время проект не поддерживает создание XML из объектов Ruby, и первоначальный автор не выразил желания предоставлять эту поддержку, но я закреплю некоторые функции для этого в своей вилке: http://github.com/jimmyz/happymapper/tree/master
Надеюсь это поможет.
- Джимми Циммерман
Производительность здесь на самом деле не проблема, поэтому я остановился на REXML, поскольку он выглядел как самое быстрое и простое решение и работал очень хорошо. Большое спасибо за Ваш ответ.