Различия между JAXB и XmlBeans

Anonim

JAXB vs XmlBeans

JAXB является частью стандартов JavaEE и относится к архитектуре Java для привязки XML. Именно этот процесс используется для обработки XML-документов. Использование JAXB является предпочтительным, поскольку оно предлагает альтернативу для обработки XML-документов в Java, не обязательно понимая все мелкие детали XML-технологии. JAXB доступен в приложениях, совместимых с JavaEE 5, в виде пакета с открытым исходным кодом. Пакет позволяет связывать данные и легкость чтения и доступа к XML-документам, написанным на языке программирования Java. XMLBeans, с другой стороны, является проектом с открытым исходным кодом, разработанным системами BEA, и они обеспечивают аналогичную функциональность JAXB, позволяя обращаться к документам XML. Хорошее знание фона в XML, однако, требуется при работе с XMLBeans. Однако между ними существуют различия, и они обсуждаются ниже.

Различия

До разработки JAXB и XMLBeans единственным способом обработки XML был использование программного анализа, анализирующего язык SAX (Simple API для XML) или использование DOM (Document Object Model), как анализирующих языки, предоставляемые JAXP (API Java API для обработки API). Разработчику пришлось создать код, предназначенный для вызова DOM или SAX через JAXP, чтобы код мог анализировать язык в XML-документе. После сканирования код обычно разбивал код на отдельные части, чтобы он мог быть доступен для целевых приложений.

Основное различие, отмеченное между JAXB и XMLBeans, - это подход, который каждый из них выполняет в маршаллинге и разборке XML-документов. XMLBeans обрабатывает весь XML-документ, не переходя через преобразование Java, поскольку целостность данных документа XML была потеряна. В XMLBeans создан курсор, который сканирует XML-документ. С помощью курсора можно получить доступ к любому элементу документа, включая информацию схемы или комментарии, по мере сохранения верности документа. XMLBeans также обеспечивает выполнение XQuery в том же документе. Дополнительный типизированный доступ предоставляется XMLBeans с довольно общим типом доступа, который становится отражением API. XMLBeans, как уже упоминалось ранее, требует обширного знания XML и, более того, SAX или даже DOM.

JAXB, с другой стороны, связан с XML-схемой. Это связано с тем, что возникла с первым выпуском JAXB, поскольку он не смог поддерживать все функции схемы XML, способные поддерживать только DTD (определения типа документа). Это, по сути, означало, что первая версия JAXB не могла обеспечить читаемые привязки. JAXB 2.0 упростил обработку разработки, поскольку он обеспечивает полную поддержку XML-схем, сопоставление схем Java и XML, переносимость и эволюцию схемы. Кроме того, JAXB внедрил гибкое unmarshalling содержимого XML, которое является недопустимым, и не определилось, прекратить ли его отмену или нет.

Резюме:

- XMLBeans лучше, если вы предпочитаете более надежные функции XML, например. XQueries и прямой доступ к XML-документам. Его использование происходит за счет управления памятью и производительности.

- JAXB предпочтительнее, если вы хотите повысить производительность и управление памятью, хотя это не так тщательно, как XMLBeans.

- JAXB следует выбрать, если вы после простого преобразования XML-документов.

- Настройка привязки лучше всего подходит в JAXB, в отличие от XMLBeans.

- JAXB предлагает эффективное использование памяти, а не использование XMLBeans, который является процессом, зависящим от памяти.

- Если вы хотите развязать XML-документ, JAXB - ваш выбор, поскольку XMLBeans сталкивается с трудностями при разукрупнении. При привязке схемы вы можете использовать ObjectFactory для создания объекта и использовать методы набора при создании контента.