Когда и почему вы используете Apache commons-digester? - PullRequest
11 голосов
/ 06 февраля 2009

Из всех библиотек для ввода и вывода xml с помощью java, при каких обстоятельствах является обычным инструментом для выбора общего ресурса?

Ответы [ 3 ]

10 голосов
/ 06 февраля 2009

Из Вики-журналы

Зачем использовать Digester?

Дигестер это слой поверх SAX API синтаксического анализатора XML для облегчения обрабатывать ввод XML. Особенно, Дайджест позволяет легко создавать и инициализировать дерево объектов на основе входной файл xml.

Наиболее распространенное использование для Digester это обрабатывать конфигурацию в формате xml файлы, строящие дерево объектов на основании этой информации.

Обратите внимание, что варочный котел может создавать и инициализировать истинные объекты, то есть вещи которые связаны с бизнес-целями приложение и реально поведения. Многие другие инструменты имеют другая цель: построить модель данные во входном XML-документе, как это делает W3C DOM, но немного больше удобно.

и

И в отличие от инструментов, которые генерируют классы, вы можете написать свой сначала классы приложения, затем позже решу использовать Дигестер для постройки их из входного файла XML. В результате ваши занятия реальны классы с реальным поведением, что случается инициализируется из XML файл, а не простые "структуры" которые просто хранят данные.

В качестве примера того, для чего он НЕ используется:

Если, однако, вы ищете прямое представление входного XML-документа, как данные, а не настоящие объекты, значит, дайджест не для вас; DOM, JDOM или другое инструменты прямого связывания будут более подходящими.

Итак, digester будет отображать XML непосредственно в объекты Java. В некоторых случаях это более полезно, чем чтение дерева и выбор параметров.

6 голосов
/ 09 апреля 2009

Моим первым взятием было бы "никогда" ... но, возможно, оно имеет свое место. Я согласен с eljenso, что он был превзойден конкуренцией.

Таким образом, для эффективного и простого связывания / сопоставления объектов JAXB намного лучше, или XStream . Гораздо удобнее и быстрее.

РЕДАКТИРОВАТЬ 2019: также, Jackson XML , аналогично JAXB в подходе, но с использованием аннотаций Джексона

2 голосов
/ 06 февраля 2009

Если вы хотите создавать и инициализировать «истинные» объекты из XML, используйте приличный контейнер bean-компонентов, например, предоставленный Spring.

Кроме того, чтение в XML и его обработка самостоятельно с использованием XPath или инструментов связывания Java / XML, таких как Castor, являются хорошими и, возможно, более стандартными альтернативами.

Я работал с Digester при использовании Struts, но, похоже, его превзошли другие инструменты и каркасы для возможного использования.

...