JAXB проти XmlBeans
JAXB - це частина стандартів JavaEE і стосується архітектури Java для прив'язки XML. Саме цей процес використовується для обробки XML-документів. Використання JAXB є кращим, оскільки воно пропонує альтернативу для обробки XML-документів на Java, не обов'язково розуміти всі дрібні деталі технології XML. JAXB доступний у сумісних програмах JavaEE 5 у вигляді пакету з відкритим кодом. Пакет дозволяє прив'язувати дані та легко читати та отримувати доступ до XML-документів, написаних мовою програмування Java. З іншого боку, XMLBeans - це проект з відкритим кодом, розроблений системами BEA, і вони надають аналогічні функції JAXB, дозволяючи отримати доступ до XML-документів. Однак, для роботи з XMLBeans потрібні хороші базові знання в XML. Однак є різні відмінності між ними, і вони обговорюються нижче.
Відмінності
До розробки JAXB та XMLBeans єдиним способом оброблення XML було використання за допомогою програмного забезпечення, що аналізує мову SAX (Simple API for XML), або використання DOM (Document Object Model), обидва аналізовані мови, передбачені JAXP (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 запровадила гнучку демонтаж вмісту XML-вмісту, який є недійсним і не визначається, припиняти скасовувати чи ні.
Підсумок:
- XMLBeans краще, якщо ви віддаєте перевагу більш надійні функції XML, наприклад XQueries і прямий доступ до документів XML. Її використання відбувається за рахунок управління пам’яттю та продуктивністю.
- JAXB є кращим, якщо ви бажаєте більш високої продуктивності та управління пам'яттю, хоча це не так ретельно, як XMLBeans.
- JAXB повинен бути обраний, якщо ви після простого перетворення XML-документа.
- Налаштування прив'язки найкраще відбувається в JAXB на відміну від XMLBeans.
- JAXB пропонує ефективне використання пам'яті на відміну від використання XMLBeans, що є залежним від пам'яті процесом.
- Якщо ви хочете зняти маршал із XML-документа, JAXB - це ваш вибір, оскільки XMLBeans стикається з труднощами при скасуванні. За допомогою схеми прив'язки ви можете використовувати використання ObjectFactory для створення об'єктів і використовувати задані методи для створення контенту..