| Manipular un Documento XML con JAXB a partir de un XML Schema |
| Paso 2: Operativa |
Creación de un XML Schema
En la carpeta C:\isg\j2se\prosjava\projaxb nos creamos un documento XML Schema llamado pedido.xsd. Este es el contenido de este fichero
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xsd:element name="pedido" type="PedidoType"/>
<xsd:element name="comentario" type="xsd:string"/>
<xsd:complexType name="PedidoType">
<xsd:sequence>
<xsd:element name="enviarA" type="DireccionEEUU"/>
<xsd:element name="facturarA" type="DireccionEEUU"/>
<xsd:element ref="comentario" minOccurs="0"/>
<xsd:element name="articulos" type="Articulos"/>
</xsd:sequence>
<xsd:attribute name="fechaPedido" type="xsd:date"/>
</xsd:complexType>
<xsd:complexType name="DireccionEEUU">
<xsd:sequence>
<xsd:element name="nombre" type="xsd:string"/>
<xsd:element name="calle" type="xsd:string"/>
<xsd:element name="ciudad" type="xsd:string"/>
<xsd:element name="estado" type="xsd:string"/>
<xsd:element name="codigoPostal" type="xsd:decimal"/>
</xsd:sequence>
<xsd:attribute name="pais" type="xsd:NMTOKEN" fixed="EEUU"/>
</xsd:complexType>
<xsd:complexType name="Articulos">
<xsd:sequence>
<xsd:element name="articulo" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="nombreProducto" type="xsd:string"/>
<xsd:element name="cantidad">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:maxExclusive value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="precioEEUU" type="xsd:decimal"/>
<xsd:element ref="comentario" minOccurs="0"/>
<xsd:element name="fechaEnvio" type="xsd:date" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="codigoStock" type="SKU" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="SKU">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d{3}-[A-Z]{2}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema> |
Generación de Clases Java a través del compilador de JAXB (schema compiler)
Nos situamos en la ventana Projects y con el botón derecho del ratón seleccionamos el proyecto projaxb y elegimos new | Other...
En el cuadro de diálog New File seleccionamos XML | JAXB Binding y hacemos clic sobre el botón 

en el cuadro de diálogo New JAXB Binding rellenamos los siguientes campos
- Binding Name: pedidoBINDING
- Select From Local File System: pedido.xsd
- Schema Type: XML Schema
- Package Name: jaxb.pedido
- Compiler Options: verbose

Seguidamente hacemos clic sobre el botón
.
Como podemos observar en la ventana Files en el proyecto projaxb se han creado las Clases que representan a los tipos complejos del XML Schema pedido.xsd
