Где я могу найти библиотеки Java EE 6 XML - PullRequest
2 голосов
/ 11 декабря 2011

Я изучаю Java EE 6 и Jax-RS (еще ничего не начал с Jax-RS), чтобы создать xml API для своей работы. У меня настроены контроллеры Java, и теперь я использую свои модели для генерации выходных данных XML. Я не могу найти какие-либо библиотеки XML с помощью поиска в Google. Может ли кто-нибудь помочь направить меня в правильном направлении?

Ответы [ 4 ]

5 голосов
/ 11 декабря 2011

Если вы используете JAX-RS, вы можете использовать @Produces («application / xml»), тогда у вас будет XML-API. JAX-RS по умолчанию работает с JAXB.

См. http://jersey.java.net/nonav/documentation/latest/jax-rs.html#d4e318

3 голосов
/ 11 декабря 2011

Java SE уже включает парсеры XML в трех стилях:

  1. SAX - вы создаете его с помощью вспомогательного класса SAXParserFactory . Я считаю, что это самый старый из API и он соответствует стандарту W3C. Это также довольно сложно использовать, потому что он используется путем передачи множества обратных вызовов для парсера, чтобы вызвать вас, вы должны сами отслеживать, где вы находитесь в документе, и с доступностью StAX практически нет причин использовать его. Его также нельзя использовать для написания XML.
  2. DOM - вы создаете парсер, используя DocumentBuilderFactory . Единственный из API, который предлагает произвольный доступ к анализируемой тройке. Он также самый медленный и использует больше памяти, поэтому не рекомендуется, если вам нужно обрабатывать большие документы. (Тем не менее, должно быть хорошо сериализовать выходные данные веб-службы.) Реализация Java следует стандарту W3C, что делает API немного запутанным, поскольку оно воздерживается от следования идиомам Java. Есть два довольно популярных альтернативных API в стиле DOM, которые более похожи на Java: JDOM и dom4j .
  3. StAX - новый ребенок на блоке, специфичный для Java, и мой личный фаворит. Это работает, позволяя вам продвигаться через поток событий. Это делает его намного быстрее, чем DOM, и намного легче оборачивать голову. Вы начинаете с использования XMLInputFactory для чтения XML и XMLOutputFactory для его записи.

Если вы собираетесь использовать JAX-RS, вы, вероятно, не хотите использовать эти «низкоуровневые» библиотеки XML. JAX-RS должен обрабатывать запросы на синтаксический анализ и форматирование ответов для вас. Я полагаю, что для этого используется JAXB , также являющаяся частью стандартной библиотеки. JAXB автоматически сериализует объект Java на основе аннотаций к классу и его полям / свойствам, которые управляют сериализацией.

1 голос
/ 11 декабря 2011

Лично мне нравится простота простого XML http://simple.sourceforge.net/

Также вы можете рассмотреть возможность использования JAXB, который поставляется с Java EE6.http://www.oracle.com/technetwork/articles/javase/index-140168.html

1 голос
/ 11 декабря 2011

Библиотеки не являются специфичными для JavaEE.Для генерации XML в моем опыте чаще всего используются StAX и JDOM.StAX является частью JDK.Они также выполняют синтаксический анализ и проверку XML.

Пара учебных пособий: 1 2

StAX использует модель, основанную на событиях (прочитайте документ икогда вы видите, что элемент X что-то делает), и JDOM, не задумываясь, использует синтаксис, аналогичный DOM (найдите элемент XY).JDOM загружает все дерево документов в память, которая потребляет память, но работает быстрее.

Вот краткий обзор , сравнивающий два инструмента и JAXB.

...