Apache XMLBeans

Apache XMLBeans
Разработчик(и)Фонд программного обеспечения Apache
Стабильный релиз
5.1.1 / 29 августа 2022 г. ; 2 года назад ( 2022-08-29 )
Написано вЯва
Операционная системаКроссплатформенный
ТипXML-связывание
ЛицензияЛицензия Apache 2.0
Веб-сайтxmlbeans.apache.org

XMLBeans — это фреймворк связывания Java - XML , являющийся частью проекта Apache Software Foundation XML .

Описание

XMLBeans — это инструмент, который позволяет получить доступ ко всей мощи XML в дружественном для Java виде. Идея заключается в том, чтобы воспользоваться богатством и возможностями XML и XML Schema и максимально естественно сопоставить эти возможности с эквивалентным языком Java и конструкциями типизации. XMLBeans использует XML Schema для компиляции интерфейсов и классов Java, которые затем можно использовать для доступа и изменения данных экземпляра XML. Использование XMLBeans похоже на использование любого другого интерфейса/класса Java: с такими методами, как getFoo или setFoo, как и при работе с Java. Хотя основным применением XMLBeans является доступ к данным экземпляра XML с помощью строго типизированных классов Java, существуют также API, которые позволяют получить доступ ко всему набору данных XML (XMLBeans сохраняет точность набора данных XML), а также позволяют осуществлять отражение в самой схеме XML через модель объекта XML Schema.

Характеристики XMLBeans

  1. Поддержка больших XML-схем .
  2. Поддержка больших наборов XML-информации .

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

Поддержка большого набора XML Infoset: при демаршаллинге экземпляра XML полный набор XML infoset сохраняется и доступен разработчику. Это важно, поскольку это подмножество XML нелегко представить в Java. Например, порядок элементов или комментариев может потребоваться в конкретном приложении.

Цель

Главной целью XMLBeans была его применимость во всех непоточных (в памяти) ситуациях программирования XML. Разработчик должен иметь возможность компилировать свою XML-схему в набор классов Java и знать, что он сможет:

  1. используют XMLBeans для всех схем, с которыми они сталкиваются.
  2. получить доступ к XML на любом необходимом уровне без других инструментов.

API-интерфейсы

Для достижения вышеуказанных целей XMLBeans предоставляет три основных API:

  • XmlОбъект
  • XmlCursor
  • Тип схемы

XmlObject: Классы Java, которые генерируются из XML-схемы, все являются производными от XmlObject. Они предоставляют строго типизированные геттеры и сеттеры для каждого из элементов в определенном XML. Сложные типы, в свою очередь, являются XmlObjects. Например, getCustomer может возвращать CustomerType (который является XmlObject). Простые типы превращаются в простые геттеры и сеттеры с правильным типом Java. Например, getName может возвращать String.

XmlCursor: Из любого XmlObject разработчик может получить XmlCursor. Это обеспечивает эффективный низкоуровневый доступ к XML Infoset. Курсор представляет позицию в экземпляре XML. Курсор можно перемещать по экземпляру XML на любом необходимом уровне детализации от отдельных символов до токенов.

SchemaType: XMLBeans предоставляет полную модель объекта XML Schema, которая может использоваться для отражения метаинформации базовой схемы. Например, разработчик может сгенерировать пример экземпляра XML для XML-схемы или, возможно, найти перечисления для элемента, чтобы они могли быть отображены.

Пример

Ниже приведен пример простого определения схемы XML для описания страны.

 <?xml version="1.0" encoding="UTF-8"?> <xs:schema targetNamespace= "http://www.openuri.org/domain/country/v1" xmlns:tns= "http://www.openuri.org/domain/country/v1" xmlns:xs= "http://www.w3.org/2001/XMLSchema" elementFormDefault= "qualified" attributeFormDefault= "unqualified" version= "1.0" > <xs:element name= "Country" type= "tns:Country" /> <xs:complexType name= "Country" > <xs:sequence> <xs:element name= "Name" type= "xs:string" /> <xs:element name= "Population" type= "xs:int" /> <xs:element name= "Iso" type=" "tns:Iso" /> </xs:sequence> </xs:complexType> <xs:complexType name= "Iso" > <xs:annotation><xs:documentation> ISO 3166 </xs:documentation></xs:annotation> <xs:sequence> <xs:element name= "Alpha2" type= "tns:IsoAlpha2" /> <xs:element name= "Alpha3" type= "tns:IsoAlpha3" /> <xs:element name= "CountryCode" type= "tns:IsoCountryCode" /> </xs:sequence> </xs:complexType> <xs:simpleType name= "IsoCountryCode" > <xs:restriction base= "xs:int" > <xs:totalDigits value= "3" /> </xs:restriction> </xs:simpleType> <xs:simpleType name= "IsoAlpha2" > <xs:restriction base= "xs:string" > <xs:pattern value= "[AZ]{2}" /> <xs:whiteSpace value= "collapse" /> </xs:restriction> </xs:simpleType> <xs:simpleType name= "IsoAlpha3" > <xs:ограничение base= "xs:string" > <xs:pattern value= "[AZ]{3}" /> <xs:whiteSpace value= "collapse" /> </xs:restriction> </xs:simpleType> </xs:schema>                                                                     

Когда схема компилируется в классы XMLBean (например, с помощью Ant ), очень легко создавать и манипулировать данными XML, соответствующими определению схемы. Следующий код Java является простым примером, иллюстрирующим, как можно создать и проверить документ XML.

 import org.openuri.domain.country.v1.Country ; import org.openuri.domain.country.v1.Iso ; public class CountrySample { public static void main ( String [] args ) { Country country = Country.Factory.newInstance ( ) ; country.setName ( "Denmark" ); country.setPopulation ( 5450661 ); // из Википедии :-) // распечатать XMLBean страны как XML System.out.println ( country.xmlText ( ) ) ; // проверить , является ли документ допустимым выведет "Документ недопустим" // потому что требуемый дочерний элемент Iso отсутствует в объекте System.out.println ( " Документ является " + ( country.validate ( ) ? "valid" : "invalid" ) ); // добавить дочерний элемент со сложным типом Iso , чтобы сделать документ допустимым Iso iso = country.addNewIso ( ) ; iso.setAlpha2 ( " DK " ) ; iso.setAlpha3 ( "DNK" ); iso.setCountryCode ( 208 ); // распечатать XMLBean страны как XML System.out.println ( country.xmlText ( ) ) ; // проверить , действителен ли документ - вывести "Документ действителен " System.out.println ( " Документ " + ( country.validate ( ) ? " valid " : " invalid " ) ) ; } }                                                     

История

Дэвид Бау был главным дизайнером проекта XMLBeans 1.0, когда он работал в BEA . XMLBeans начинался на основе XMLMaps, инструмента связывания XML, включенного в предыдущие продукты BEA WebLogic . XMLBeans изначально разрабатывался как часть фирменной платформы BEA WebLogic Workshop Framework, но из интервью, проведенных после его первого анонса 27 января 2003 года, стало очевидно, что BEA хотела, чтобы он стал открытым стандартом. В то время еще не было решено, какую организацию BEA хотела бы привлечь к работе по стандартизации. Позже в том же году он был передан в дар Apache Software Foundation. Первоначальная команда включала Сезара Кристиана Андрея и Эрика Василика, позже к команде присоединились Клифф Шмидт и Раду Преотюк-Пьетро, ​​Джейкоб Даннер, Кевин Краузе и Винг Ю Пун. Сейчас XMLBeans разрабатывается Apache POI .

  • 27 января 2003 г.: BEA анонсирует XMLBeans в качестве предварительной версии технологии.
  • 24 сентября 2003 г.: BEA жертвует XMLBeans в Apache Software Foundation, где он присоединяется к проекту Apache Incubator.
  • 23 апреля 2004 г.: Выпущен XMLBeans версии 1.0.2. Это первый релиз инкубаторского проекта.
  • 25 июня 2004 г.: XMLBeans вышел из проекта Apache Incubator и стал проектом высшего уровня.
  • 30 июня 2005 г.: выпущена версия XMLBeans 2.0.
  • 16 ноября 2005 г.: выпущена версия XMLBeans 2.1.
  • 23 июня 2006 г.: выпущена версия XMLBeans 2.2.
  • 1 июня 2007 г.: выпущена версия XMLBeans 2.3.
  • 8 июля 2008 г.: выпущена версия XMLBeans 2.4.
  • 14 декабря 2009 г.: выпущена версия XMLBeans 2.5.
  • 14 августа 2012 г.: выпущена версия XMLBeans 2.6.
  • 23 мая 2014 г.: XMLBeans официально прекращен, активная разработка временно прекращена.
  • 29 июня 2018 г.: XMLBeans был «возвращен на пенсию», и Apache POI взял на себя активную разработку. [1]

Смотрите также

Ссылки

  1. ^ «История XMLBeans».
  • Официальный сайт
  • Ресурсы XMLBeans
  • Проект Apache XML
  • Задача XMLBean Ant
  • Ресурсы XML Binding - xbeans популярных схем Архивировано 2009-04-11 на Wayback Machine
Получено с "https://en.wikipedia.org/w/index.php?title=Apache_XMLBeans&oldid=1195398876"