XMLBeans Apache
Разработчик(и) | Фонд программного обеспечения Apache |
---|---|
Стабильная версия | 5.1.1
/ 29 августа 2022 г |
Написано в | Ява |
Операционная система | Кросс-платформенный |
Тип | XML-привязка |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | xmlbeans |
XMLBeans — это Java к привязки среда XML , которая является частью проекта Apache Software Foundation XML- .
Описание
[ редактировать ]XMLBeans — это инструмент, который обеспечивает доступ ко всем возможностям XML удобным для Java способом. Идея состоит в том, чтобы воспользоваться богатством и возможностями XML и XML-схемы и максимально естественно сопоставить эти функции с эквивалентным языком Java и конструкциями типизации. XMLBeans использует схему XML для компиляции интерфейсов и классов Java, которые затем можно использовать для доступа к данным экземпляра XML и их изменения. Использование XMLBeans аналогично использованию любого другого интерфейса/класса Java: с такими методами, как getFoo или setFoo, так же, как и при работе с Java. Хотя основное использование XMLBeans заключается в доступе к данным экземпляра XML с помощью строго типизированных классов Java, существуют также API, которые обеспечивают доступ к полному информационному набору XML (XMLBeans сохраняет точность XML-информационного набора), а также позволяют отражать саму схему XML через XMLBeans. Объектная модель схемы.
Характеристики XMLBeans
[ редактировать ]- Поддержка большой XML-схемы .
- Поддержка больших информационных наборов XML .
Поддержка большой схемы XML: XMLBeans полностью поддерживает схему XML, а соответствующие классы Java предоставляют конструкции для всех основных функций схемы XML. Это очень важно, поскольку часто невозможно контролировать функции XML-схемы, необходимые для работы в Java. Кроме того, приложения, ориентированные на XML-схему, могут в полной мере использовать возможности XML-схемы и не ограничиваться ее подмножеством.
Поддержка больших информационных наборов XML: при демаршаллинге экземпляра XML полный информационный набор XML сохраняется и доступен разработчику. Это очень важно, поскольку это подмножество XML нелегко представить в Java. Например, в конкретном приложении может потребоваться порядок элементов или комментариев.
Цель
[ редактировать ]Основной целью XMLBeans была его применимость во всех ситуациях программирования XML, не связанных с потоковой передачей (в памяти). Разработчик должен иметь возможность скомпилировать свою XML-схему в набор классов Java и знать, что он сможет:
- используйте XMLBeans для всех встречающихся схем.
- получить доступ к XML на любом уровне без использования других инструментов.
API
[ редактировать ]Для достижения вышеуказанных целей XMLBeans предоставляет три основных API:
- XmlОбъект
- XmlКурсор
- Тип схемы
XmlObject: все классы Java, созданные на основе схемы XML, являются производными от XmlObject. Они предоставляют строго типизированные методы получения и установки для каждого элемента в пределах определенного XML. Сложные типы, в свою очередь, являются объектами XmlObject. Например, getCustomer может возвращать CustomerType (который является XmlObject). Простые типы превращаются в простые геттеры и сеттеры с правильным типом Java. Например, getName может возвращать строку.
XmlCursor: из любого XmlObject разработчик может получить XmlCursor. Это обеспечивает эффективный низкоуровневый доступ к информационному набору XML. Курсор представляет позицию в экземпляре XML. Курсор можно перемещать по экземпляру XML с любым необходимым уровнем детализации — от отдельных символов до токенов.
SchemaType: XMLBeans предоставляет полную объектную модель XML-схемы, которую можно использовать для отражения метаинформации базовой схемы. Например, разработчик может создать образец экземпляра 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="[A-Z]{2}"/>
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IsoAlpha3">
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z]{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); // from Wikipedia :-)
// print out country XMLBean as XML
System.out.println(country.xmlText());
// check if document is valid - will print "Document is invalid"
// because required Iso child element in not in the object
System.out.println ("Document is " + (country.validate() ? "valid" : "invalid"));
// add child with complex type Iso to make the document valid
Iso iso = country.addNewIso();
iso.setAlpha2("DK");
iso.setAlpha3("DNK");
iso.setCountryCode(208);
// print out country XMLBean as XML
System.out.println(country.xmlText());
// check if document is valid - will print "Document is valid"
System.out.println ("Document is " + (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.
- 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]
См. также
[ редактировать ]- Привязка XML-данных
- Архитектура Java для привязки XML (JAXB)
- xmlbeansxx — генератор кода привязки XML-данных для C++