Пользовательский Java XMLBuilder по сравнению со стандартными классами

Какое решение для генерации XML является наилучшей производительностью.

Моя цель - построить несколько простых XML-файлов из кода. Я собираюсь реализовать простую реализацию XML Builder на основе StringBuffer. С другой стороны, есть несколько библиотек вроде http: //code.google.com/p/java-xmlbuilder/ и http://code.google.com/p/xmltool/ , в котором есть хороший DSL, но, как мне кажется, не хватает производительности.

Поскольку моя цель - построить достаточно простой XMLBuilder с высокой производительностью, я думаю, что создам индивидуальное решение. В нем будут представлены:

  • Хороший DSL на основе Java для XML-конструкций (в основном добавление тегов)
  • Отличная производительность на основе StringBuffer.
  • Обработка экранирования строковых данных при добавлении тегов XML.
  • Автоматический отступ

Пожалуйста предложите, если я ошибаюсь в ожиданиях производительности и, вероятно, лучше использовать готовые библиотеки.

ОБНОВЛЕНИЕ. Почему я считаю, что производительность стандартных построителей XML не очень хороша.

Стандартные построители XML используют Document Builder Factory и работают с классами за кулисами. Также эти классы оптимизированы для всех пользователей. Например, я не не нужна поддержка пространства имен и т. д.



 value


Рассмотрим очень простой код XML выше. Если вы создаете со стандартными инструментами, потребуется много работы, чтобы просто создать этот простой XML. Я считаю, что лучше просто сгенерировать его самостоятельно с помощью String.

ОБНОВЛЕНИЕ 2 . Требование к производительности заключается в том, что код должен делать столько вещей, сколько требуется для генерации простого XML, и не более того.

ОБНОВЛЕНИЕ 3. Спасибо всем за отличные комментарии! Теперь я лучше понимаю, что мне нужно, и что моя первоначальная цель была поставлена ​​не очень правильно словом «производительность». Моя истинная цель - использовать достаточно простое решение с удобным DSL для описания структуры XML и генерирования вывода XML.

Я буду использовать простые объекты Java как DSL для XML и сгенерировать XML с помощью библиотеки XStream, что является довольно простым решением.

] ОБНОВЛЕНИЕ 4. JAXB. Я обсуждал XStream и JAXB и обнаружил, что JAXB быстрее, чем XStream. Кроме того, я уже использую JAXB в своем проекте, и мне нравятся его стандартные аннотации. Я передумал и сейчас перейду на JAXB, потому что XStream изначально сильно разрабатывался в то время, когда JAXB был не так хорош, как сегодня.

5
задан Vladimir 13 December 2010 в 12:16
поделиться