Поддержка Ruby пространств имен XML

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

Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
7
0
1 487
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

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

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

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

Производительность здесь на самом деле не проблема, поэтому я остановился на REXML, поскольку он выглядел как самое быстрое и простое решение и работал очень хорошо. Большое спасибо за Ваш ответ.

Alex Marshall 04.11.2008 21:42

Я оказался в почти такой же ситуации, как и ваша (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

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

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

Другие вопросы по теме