Javadabbadoo.org - Tu comunidad Java parlante XML
Inicio | Cursos infosintesis.net liberados | Java SE Avanzado | Mani. Doc. XML con JAXB a partir de un XML Schema
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

sdfdsf

en el cuadro de diálogo New JAXB Binding rellenamos los siguientes campos

sadfsfd

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

sadfsd

JavaDabbaDoo.org
Tu comunidad Java parlante. Cursos abiertos, tutoriales y mucho mucho más ...