В чем разница между JAXP и JAXB? - PullRequest
75 голосов
/ 10 мая 2010

В чем разница между JAXP и JAXB?

Ответы [ 3 ]

67 голосов
/ 10 мая 2010

JAXP (Java API для обработки XML) - это довольно устаревший общий термин, охватывающий различные низкоуровневые XML API в JavaSE, такие как DOM, SAX и StAX.

JAXB (Java Architecture для привязки XML) - это особый API (материал под javax.xml.bind), который использует аннотации для привязки документов XML к объектной модели Java.

47 голосов
/ 10 мая 2010

JAXP - это Java API для обработки XML, который предоставляет платформу для анализа файлов XML с помощью анализаторов DOM или SAX.

Если JAXB - это Java-архитектура для привязки XML, это облегчит доступ к документам XML из приложений, написанных на языке программирования Java.

Например: файл Computer.xml. Если мы хотим получить доступ к данным с помощью JAXP, мы выполним следующие шаги

  1. Создайте SAX Parser или DOM Parser, а затем сохраните данные, если мы используем DOM, это может занять много памяти, если документ слишком большой. предполагать если мы используем синтаксический анализатор SAX, нам нужно определить начало документ. Когда он сталкивается с чем-то значительным (в терминах SAX, «событие»), например, начало тега XML или текст внутри тег, он делает эти данные доступными для вызывающего приложения.
  2. Затем создайте обработчик содержимого, который определяет методы для уведомляет парсер, когда он встречает событие. Эти методы, известные как методы обратного вызова, выполните соответствующие действия с данными они получают.

Те же операции, если они выполняются JAXB, для доступа к Computer.xml необходимо выполнить следующие шаги:

  1. Свяжите схему для XML-документа.
  2. Разархивировать документ в объекты содержимого Java. Объекты содержимого Java представляют содержимое и организацию документа XML и непосредственно доступны для вашей программы. После демаршаллинга ваша программа может обращаться к данным в документе XML и отображать их, просто обращаясь к данным в объектах содержимого Java и затем отображая их. Нет необходимости создавать и использовать синтаксический анализатор и не нужно писать обработчик содержимого с помощью методов обратного вызова. Это означает, что разработчики могут получать доступ к XML-данным и обрабатывать их, не зная XML или XML-обработку
2 голосов
/ 21 марта 2012

Ключевым отличием является то, какую роль играет XML-схема.JAXP устарел без знания схемы XML, в то время как JAXB обрабатывает привязку схемы как самый первый шаг.

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