Ответ 1
-
JAXP - это "подключаемый API", набор интерфейсов и абстрактных классов с "ссылочной реализацией" Sun, но он использует подход factory, чтобы вы могли перейти к другой реализации (например, такой, которая могла бы быть быстрее в определенных типах использования) без изменения какого-либо из вашего кода, просто изменение системного свойства. Он включает в себя DOM, SAX, StAX и XSLT. У Sun есть хорошая страница сравнения для DOM/SAX/StAX. Я бы рекомендовал книгу O'Reilly на Java XML, вы можете найти ее по приемлемой цене, но просто убедитесь, что у вас есть последняя ( 3-я) редакция.
-
JAXB - это способ привязки классов Java к XML файлам с использованием схемы XML. (Вы можете автогенерировать классы java с помощью схемы, или вы можете автогенерировать схему с помощью классов java. Я использовал первое, но не последнее.) Может быть полезно, если ваши XML файлы имеют хорошо известную схему, а вы хотите обрабатывать данные в XML файле, как если бы это были объекты в классе Java. Вы выполняете очень мало вызовов API, всего один или два, чтобы маршалировать данные с Java на XML, или отменить обмен данными с XML на Java. Если ваши XML файлы более свободны и/или вы хотите использовать XPATH для поиска вещей, вам, вероятно, лучше использовать один из JAXP API.
-
Кастор является альтернативой JAXB; Я не использовал его, но там была страница сравнения на веб-сайте IBM.
-
Xerces - это семейство пакетов обработки XML Apache. Он включает в себя один для Java, большинство из которых можно использовать через JAXP в качестве альтернативной реализации для реализации ссылок Sun. Он также включает библиотеки для С++ и Perl.