Quando eu trabalhei em um grande projeto na Caixa em Brasília, usavamos o JAXB 1.x para fazer o data binding(marshall/unmarshall) de objetos Java para XML e vice-versa.
Componentes como o XStream da CodeHaus, facilitam bastante a vida, mas ainda é complicado dependendo do cliente homologar uma solução como esta. Sendo assim, vamos ao padrão, já que o JAXB faz parter do WebService Developer Pack, ou seja: Padrão estabelecidos em JSR e controlado pelos mebros no JCP, entre as principais melhorias, podemos citar:
- Bibliotecas de Runtime menores economizando assim no uso de memória.
- Muito menos classes são geradas se compararmos com o JAXB1.0. Para cada tipo complexo, a nova versão gera uma classe para direto ao invés de criar uma interface e uma implementação.
- Suporte a todos os tipos de XML Schema.
- Adição de tipos parametrizados.
- Suporte a bind Java-to-XML com as anotações do pacote: javax.xml.bind.annotation package.
Sendo assim, vamos a um pequeno tutorial, para mostrar como pode ser simples realizar o binding de objeto para XML e vice versa.
- Faça o Downlaod do JAXB no site: http://jaxb.dev.java.net
- Execute o JAR que é o instalador: java -jar jaxb
.jar e instale num lugar do tipo /opt/java/jaxb ou c:/java/jaxb - Não vou citar IDE’s, por isso criei toda uma estrutura baseada em ANT, sendo assim criei um arquivo chamdo de build.properties[1] que fornece informações para o build.xml, já que há uma TASK do JAXB, entao vamos usá-la para que esta realize as tarefas que desejamos, que é gerar as classes que vão estar visíveis pro contexto do JAXB[2].
- A Estrutura do projeto é simples:
- src (pasta com fontes)
- gen-src (pasta com os fontes gerados pelo JAXB)
- classes (pasta com as classes compiladas)
- schema (caso você queira guardar os XSD’s aqui[3])
- lib (pasta com bibliotecas)
Referências


Entries (RSS)