Apache XMLBeans - Apache XMLBeans

Apache XMLBeans
Desarrollador (es) Fundación de software Apache
Lanzamiento estable
5.0.0 / 14 de marzo de 2021 ; Hace 23 dias  ( 14 de marzo de 2021 )
Escrito en Java
Sistema operativo Multiplataforma
Tipo Enlace XML
Licencia Licencia Apache 2.0
Sitio web xmlbeans .apache .org

XMLBeans es un Java -a- vinculante XML marco que forma parte de la Fundación de Software Apache XML proyecto.

Descripción

XMLBeans es una herramienta que permite acceder a toda la potencia de XML de una forma compatible con Java. La idea es aprovechar la riqueza y las características de XML y XML Schema y hacer que estas características se asignen de la manera más natural posible al lenguaje Java equivalente y las construcciones de escritura. XMLBeans usa XML Schema para compilar interfaces y clases Java que luego se pueden usar para acceder y modificar datos de instancia XML. Usar XMLBeans es similar a usar cualquier otra interfaz / clase Java: con métodos como getFoo o setFoo, al igual que cuando se trabaja con Java. Si bien un uso principal de XMLBeans es acceder a datos de instancia XML con clases de Java fuertemente tipadas, también hay API que permiten el acceso al conjunto de información XML completo (XMLBeans mantiene la fidelidad del conjunto de información XML), así como para permitir la reflexión en el propio esquema XML a través de un XML. Modelo de objeto de esquema.

Características de XMLBeans

  1. Compatibilidad con grandes esquemas XML .
  2. Gran compatibilidad con XML Infoset .

Compatibilidad con grandes esquemas XML: XMLBeans es totalmente compatible con XML Schema y las clases Java correspondientes proporcionan construcciones para todas las funciones principales de XML Schema. Esto es fundamental ya que a menudo uno no tiene control sobre las características del esquema XML necesarias para trabajar en Java. Además, las aplicaciones orientadas al esquema XML pueden aprovechar al máximo el poder del esquema XML y no tienen que limitarse a un subconjunto.

Compatibilidad con el conjunto de información XML grande: al desagrupar una instancia XML, el conjunto de información XML completo se mantiene y está disponible para el desarrollador. Esto es fundamental porque ese subconjunto de XML no se representa fácilmente en Java. Por ejemplo, el orden de los elementos o los comentarios puede ser necesario en una aplicación en particular.

Objetivo

Un objetivo principal de XMLBeans ha sido su aplicabilidad en todas las situaciones de programación XML sin transmisión (en memoria). El desarrollador debería poder compilar su esquema XML en un conjunto de clases Java y saber que podrá:

  1. utilice XMLBeans para todos los esquemas que encuentren.
  2. acceder al XML en cualquier nivel que sea necesario sin otras herramientas.

API

Para lograr los objetivos anteriores, XMLBeans proporciona tres API principales:

  • XmlObject
  • XmlCursor
  • SchemaType

XmlObject: las clases java que se generan a partir de un esquema XML se derivan de XmlObject. Estos proporcionan captadores y definidores fuertemente tipados para cada uno de los elementos dentro del XML definido. Los tipos complejos son a su vez XmlObjects. Por ejemplo, getCustomer podría devolver un CustomerType (que es un XmlObject). Los tipos simples se convierten en captadores y definidores simples con el tipo java correcto. Por ejemplo, getName podría devolver una cadena.

XmlCursor: Desde cualquier XmlObject, el desarrollador puede obtener un XmlCursor. Esto proporciona un acceso eficiente y de bajo nivel al conjunto de información XML. Un cursor representa una posición en la instancia XML. El cursor se puede mover alrededor de la instancia XML en cualquier nivel de granularidad necesario, desde caracteres individuales hasta tokens.

SchemaType: XMLBeans proporciona un modelo de objeto de esquema XML completo que se puede utilizar para reflejar la metainformación del esquema subyacente. Por ejemplo, el desarrollador puede generar una instancia XML de muestra para un esquema XML o quizás buscar las enumeraciones de un elemento para que se muestren.

Ejemplo

A continuación se ofrece un ejemplo de una definición de esquema XML simple para describir un país.

 <?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>

Cuando el esquema se compila en clases XMLBean (por ejemplo, usando Ant ), es muy fácil crear y manipular datos XML que se ajusten a la definición del esquema. El siguiente código Java es un ejemplo simple que ilustra cómo se puede crear y validar un documento 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"));
   }
 }

Historia

David Bau fue el diseñador jefe del proyecto XMLBeans 1.0 mientras trabajaba para BEA . XMLBeans comenzó sobre la base de XMLMaps , una herramienta de enlace XML incluida en productos BEA WebLogic anteriores . XMLBeans se desarrolló originalmente como parte del marco de trabajo propietario de BEA WebLogic Workshop, pero fue obvio a partir de las entrevistas realizadas cuando se anunció por primera vez el 27 de enero de 2003, que BEA quería que se convirtiera en un estándar abierto. En ese momento no se decidió qué organización quería involucrar BEA en el esfuerzo de estandarización. Más tarde ese año fue donado a la Apache Software Foundation. El equipo original incluía a Cezar Cristian Andrei y Eric Vasilik, luego el equipo agregó a Cliff Schmidt y Radu Preotiuc-Pietro, Jacob Danner, Kevin Krouse y Wing Yew Poon. XMLBeans ahora está siendo desarrollado por Apache POI .

  • 27 de enero de 2003: BEA anuncia XMLBeans como avance tecnológico.
  • 24 de septiembre de 2003: BEA dona XMLBeans a Apache Software Foundation, donde se une al Apache Incubator Project .
  • 23 de abril de 2004: Se lanza XMLBeans versión 1.0.2. Este es el primer lanzamiento del proyecto de incubadora.
  • 25 de junio de 2004: XMLBeans se graduó del Apache Incubator Project para convertirse en un proyecto de nivel superior.
  • 30 de junio de 2005: Se lanza XMLBeans versión 2.0.
  • 16 de noviembre de 2005: Se publica XMLBeans versión 2.1.
  • 23 de junio de 2006: Se publica XMLBeans versión 2.2.
  • 1 de junio de 2007: Se lanza XMLBeans versión 2.3.
  • 8 de julio de 2008: Se lanza XMLBeans versión 2.4.
  • 14 de diciembre de 2009: Se lanza XMLBeans versión 2.5.
  • 14 de agosto de 2012: XMLBeans versión 2.6 es lanzada.
  • 23 de mayo de 2014: XMLBeans se retiró oficialmente y el desarrollo activo se interrumpió temporalmente.
  • 29 de junio de 2018: XMLBeans "no se retiró" y Apache POI se hizo cargo del desarrollo activo.

Ver también

Referencias

enlaces externos