¿manejo de puerto serial con java?  


OBJETIVO:

Implementar una aplicación Java con el api de JAXB para obtener datos de un libro Exel 2007 que vincula un XML Schema previamente diseñado.

¿Que es Jaxb?

JAXB (Java Architecture For XML Binding) es un framework de licencia dual CDDL v1.0 y GPL v2. que simplifica la gestión de documentos XML desde Java. 
Apartir de un Schema XML, JAXB conforma un set de classes e interfaces que junto al api JSE+JAXB, permiten manipular documentos XML basados en el esquema previsto. 
JAXB en combinación con JAX-WS (Java Api For XML Web Services) proporcionan el standard de vinculación de datos en mensajes de servicios web. La siguiente gráfica describe los procesos a seguir para construir una aplicación java basada en JAXB, observese como primero se debe compilar el XML Schema con  binding compiler, luego de esto se obtiene un conjunto de clases e interfaces, que se adjuntan al proyecto java en un package junto con los jars que conforma el api JAXB (como se verá más adelante).La aplicación tendrá la funcionalidad para realizar operaciones tipo Unmarshal, que es la habilidad de convertir datos XML en un arbol de objetos java, y operaciones de tipo Marshal, que es la capacidad de convertir un arbol de objetos java en datos XML.  


A lo largo de este documento se construirá un ejemplo simple que muestra la forma básica de manipular este framework.

RECURSOS:

  • Windows XP/Vista.
  • JDK 6.x.
  • JAXB 2.1.8
  • NetBeans 6.1  (se puede utilizar otro IDE no es relevante).
  • Microsoft Exel 2007 (se pude utilizar Open Office Cal, lo significativo es crear un libro y vincular a este el es esquema diseñado).

PASOS A SEGUIR:

  1. Crear proyecto java.
  2. Crear XML Shema.
  3. Crear Libro Exel 2007 vinculando el XML Schema.
  4. Exportar hoja exel a documento XML.
  5. Compilar el XML Shema y crear package de clases.
  6. Adjuntar api de JAXB al proyecto.
  7. Implementar clase main.
  8. Construir el proyecto y compilar.

1. Crear proyecto java.

    Realice lo siguiente:
  1. Inicie NetBeans, luego oprima al tiempo las teclas Ctrl+Mayúsculas+N, aparecerá la ventana New Project, realice las siguientes acciones en esta:
    • Seleccione el fólder Java en la columna Categories de la ventana.
    • Seleccione el icono Java Application en la columna Projects de la ventana.
    • De clic en el botón Next  de la ventana. Aparecerá la ventana New Java Application.
    2.  En la ventana New Java Application, realice las siguientes acciones:
La siguiente figura muestra el proyecto creado:

2. Crear XML Shema.

Realice lo siguiente:
1. Cree un package para agregar esquemas y documentos XML:
2. Cree un XML Schema dentro del package schemaAndDoc:De clic derecho sobre el package schemaAndDoc, seleccione New / XML Schema. Aparecerá la ventana New XML Schema.

3. Crear Libro Exel 2007 vinculando el XML Schema.


4. Exportar hoja Exel a documento XML.



5. Compilar el XML Shema y crear package de clases.

Descarge JAXB 2.1.8 de el siguiente enlace https://jaxb.dev.java.net/ y descomprima el archivo en C:\>. Basicamente JAXB consta de 2 elementos, el binding compiler que es el archivo xjc.bat ubicado en C:\jaxb-2_1_8\jaxb-ri\bin  y el api que son los archivos con extención jar ubicados en C:\jaxb-2_1_8\jaxb-ri\bin
Abra una consola DOS y apunte a la siguiente ubicacion: C:\jaxb-2_1_8\jaxb-ri\bin>, ejecute la siguiente instrucción: xjc.bat C:\sampleJAXB\jaxbExample\Schema.xsd -p Productos  . Con este comando se le indica al compilador que cree un set de clases apartir del archivo Schema.xsd previamente creado, y que guarde las clases en fólder Productos.  
Para adicionar las clases al projecto java, copie el fólder C:\jaxb-2_1_8\jaxb-ri\bin\Productos en C:\sampleJAXB\jaxbExample\src, de esta manera el proyecto tendrá tres paquetes. jaxbexample, productos y schemaAndDoc. Observe las siguientes figuaras que ayudarán a comprender estos procesos:

6. Adjuntar api de JAXB al proyecto.



7. Implementar clase main.


package jaxbexample;

import java.io.FileInputStream;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import productos.Order;

/**
 *
 * @author giovynet
 */
public class Main {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws Exception{
     
        /*Crea un objeto de tipo unmarshaller apartir de el package "productos" 
     *que presenta las clases creadas por el binding compiler de jaxb.
     */  
    Unmarshaller unmarshaller = JAXBContext.newInstance("productos").createUnmarshaller();
        /* Obtiene el objeto Order que equivale a el elemento raiz order del 
     *archivo Productos.xml creado por Exel.
     */    
Order order = (Order)unmarshaller.unmarshal(new FileInputStream("src/schemaAndDoc/Productos.xml"));
    
    System.out.println("============PRODUCTS============");
    System.out.println("Transitors:2N2222, amount:"+order.getSemiconductors().getTransistors().getT2N2222());
    System.out.println("Transitors:2N3906, amount:"+order.getSemiconductors().getTransistors().getT2N3906());
    System.out.println("Timers:NE555, amount:"+order.getSemiconductors().getTimers().getNE555());
    System.out.println("Capacitors:1P, amount:"+order.getAnalogics().getCapacitors().getC1P());
    System.out.println("Capacitors:0.1P, amount:"+order.getAnalogics().getCapacitors().getC01P());
    System.out.println("================================");
    }
}

8. Construir el proyecto y compilar.

En NetBeans de clic derecho en el nodo del proyecto y seleccione Clean and Build, luego seleccione el fólder Source Packages,de clic en [+] del package jaxbexample, de clic derecho sobre el archivo Main.java y selecione Run File.


Comments to giovynet@gmail.com
Thanks!!!