Библиотека XML с низкой занимаемой площадью - PullRequest
2 голосов
/ 19 апреля 2011

Из-за усложнения конфигурации я хочу ввести XML для файлов конфигурации моей библиотеки и заменить существующие файлы свойств.

Я хотел бы

  • Публично описать XMLструктура с XSD (поэтому структура задокументирована и может быть версионной)
  • Если возможно, сгенерируйте исходный код Java из этого XSD для демаршаллинга (как с JAXB / XJC).Альтернативный простой метод доступа тоже подходит (например, простые выражения XPath)
  • Имеет низкую занимаемую площадь и мало или вообще не имеет дополнительных зависимостей

Если занимаемая площадь не была проблемой, явыбрал бы JAXB прямо сейчас.Существуют ли похожие библиотеки с более низкой занимаемой площадью?

РЕДАКТИРОВАТЬ : Под размером я имею в виду не потребляемую память, а "размер" библиотеки в КБ / количество классов.Я ожидаю, что мой довольно простой вариант использования будет совместим с библиотекой из 5-6 классов.Мне не нужна вся мощь JAXB.

Ответы [ 3 ]

3 голосов
/ 19 апреля 2011

JAXB - низкая занимаемая площадь

Реализация JAXB (JSR-222) также включена в состав Java SE 6. Созданные классы - это просто POJO с необходимыми аннотациями. В приведенном ниже вопросе автор отмечает, что классы XMLBeans в четыре раза больше, чем классы JAXB.

Сокращение количества классов

Если вы начинаете с классов Java (вместо того, чтобы генерировать их из схемы XML), вы обычно можете уменьшить размер модели. Использование @XmlWrapperElement может помочь устранить классы.

Дальнейшее сокращение количества классов

Вы можете использовать аннотацию @XmlPath в EclipseLink JAXB (MOXy) , обратите внимание, что я технический руководитель. Он использует XPath для расширения отображений JAXB:

2 голосов
/ 19 апреля 2011

Для решения с нулевой зависимостью используйте DOM или SAX-анализатор, который является частью каждой Java VM.

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

1 голос
/ 21 апреля 2011

Если вы готовы рассмотреть возможность использования не XML-технологий, то вы можете обратиться к моей библиотеке Config4J ( www.config4star.org ).Сравнивая его с вашим списком пожеланий ...

  • Предоставляет простой в использовании язык схемы.

  • Файл jar небольшой (102 КБ) и не имеет внешних зависимостей.

  • Единственная возможность, отсутствующая в вашем списке пожеланий, - это инструмент для автоматической генерации классов Java из определения схемы.Тем не менее, API Config4J достаточно прост, поэтому я не уверен, что вам понадобится такой генератор кода.В части III ( Конкретное исследование Config4JMS ) руководства Руководство по практическому использованию описывается методика создания библиотеки, подобной Spring, для создания объектов Java из информации о конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...