В Java, как Commons-Digester обрабатывает входной XML-файл? - PullRequest
1 голос
/ 17 июня 2009

Я новичок в Java и натолкнулся на утверждение в проекте Java, в котором говорится:

Digester digester = DigesterLoader.createDigester(getClass()
                .getClassLoader().getResource("rules.xml"));

файл rules.xml содержит различные шаблоны, и каждый шаблон имеет разные атрибуты, такие как имя класса, имя метода и некоторые другие свойства.

Я гуглил о дайджесте, но не смог найти ничего полезного, что могло бы помочь мне с приведенным выше утверждением. Может ли кто-нибудь просто сказать мне, каковы шаги, выполняемые в приведенном выше заявлении? На самом деле, в чем преимущество этого XML-материала?

Ответы [ 4 ]

2 голосов
/ 17 июня 2009

swapnil, как пользователь Digester в мои дни в Struts, я могу честно сказать, что это сложно изучать / отлаживать. Это сложная библиотека для ознакомления, по сути, вы настраиваете обработчики событий для определенных элементов, вроде парсера SAX (фактически он использует SAX за кулисами). Таким образом, вы предоставляете механизму правил некоторый XPath для интересующих вас узлов, устанавливаете правила, которые будут создавать экземпляры, и устанавливаете свойства для некоторых POJO с данными, которые он находит в файле XML.

Отличная идея, и как только вы к ней привыкнете, это хорошо, однако если у вас есть xsd для вашего входного XML-файла, я бы скорее рекомендовал вам использовать JAXB.

Единственное, что приятно в Digester, это то, что он будет делать только те элементы, которые вам интересны, поэтому объем памяти в итоге будет хорошим и низким.

1 голос
/ 17 июня 2009

Полагаю, вы понимаете, как файл правил загружается с помощью загрузчика классов? В основном он выглядит в том же пакете, что и сам класс, и создает URL, который дает абсолютное местоположение файла.

Что касается Дигестера, я не использовал его, но быстро прочитал об этом (http://commons.apache.org/digester/) должен объяснить все.

1 голос
/ 17 июня 2009

Этот метод называется здесь . XML широко используется в Java для конфигурации, так как XML-файлы не нужно компилировать. Наличие такой же конфигурации в Java-файле означает, что вы должны скомпилировать файл.

0 голосов
/ 17 июня 2009

Они использовали его на моем последнем концерте, и все, что я помню, это то, что он был очень медленным.

...