Cadastre-se Revistas DevMedia Cursos
 

Space de MARCELO ANDRADE
Busca Autor


Últimas 20 atualizações de MARCELO ANDRADE

Artigo - Serializando objetos Java em XML com XStream

Serializando objetos Java em XML com XStream

Algumas vezes é necessário obter uma representação XML a partir de dados de objetos Java. A operação inversa – gerar um objeto Java a partir de uma representação XML – também pode ser igualmente útil. O processo de transpor objetos da memória como uma seqüência de bits (seja para arquivos no disco ou para transmissão via rede) é chamado de serialização.

Neste primeiro artigo, abordamos o XStream, uma biblioteca para serialização de objetos em formato XML e vice-versa.


Introdução
Existem várias bibliotecas para serialização de objetos Java em XML, tais como JOX, JAXB, XOM, WOX, Simple e etc. Cada uma destas APIs possui suas peculiaridades e suas características de performance, flexibilidade e simplicidade de uso. No entanto, quase todas possuem limitações como forçar que os objetos serializáveis estejam em formato de beans (com métodos acessores e modificadores para cada atributo), que os atributos sejam públicos, que as classes implementem uma dada interface ou mesmo que se precise definir mapeamentos entre dados da classe e sua representação XML.

De todas as bibliotecas de serialização em XML de propósito geral, a XStream se destaca por não possuir muitas destas limitações. Ou seja, XStream é capaz de gerar representação XML de praticamente quaisquer objetos Java, sem implicar em modificações nas classes originais ou nenhum outro pré-requisito em especial. Segundo os desenvolvedores, XStream terá limitações apenas para serializar classes não-públicas ou classes internas (inner classes), classes anônimas ou sem construtor default. Mesmo assim, para certas implementações específicas da Java JVM, é possível contornar estas limitações utilizando a biblioteca em um modo avançado.


Conhecendo o XStream
XStream funciona reconhecendo o tipo de dados dos atributos do objeto por reflexão e invocando um conversor interno à biblioteca para cada tipo de dados, tanto primitivos quanto referências, e gerando uma representação XML consistente e a partir da qual pode-se obter exatamente os mesmo dados.

Por exemplo, considere a seguinte definição de classe Java:

// arquivo Aluno.java

package br.com.devmedia.exemplo;
public class Aluno {
    private String nomeCompleto;
    private long numeroMatricula;
    private float[] mediasFinais = {0.0, 0.0, 0.0, 0.0};
    private boolean ehBolsista;

// construtor default de teste
     public Aluno() {
         System.out.println(“Chamou construtor default...”);
     }

// um construtor que inicializa os atributos
      public Aluno(String nome, long matricula, ehBolsista, float[] medias) {
           // segue a definição da classe...
      }


Depois de fazer o download da biblioteca XStream e colocá-la no classpath de sua aplicação, podemos criar uma representação XML de um objeto do tipo Aluno desta forma.

 

// arquivo Teste.java

package br.com.devmedia.exemplo;

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
17/11/2006 10:32:00





Artigo - Boas Vindas a Marcelo Andrade

Boas Vindas a Marcelo Andrade

 

Olá a todos! Meu nome é Marcelo Andrade. É com muita satisfação que estou fazendo parte do Portal Java Magazine, do Grupo DevMedia, para podemos discutir e aprender mais sobre desenvolvimento de sistemas em ambientes Java.

Sou bacharel em ciência da computação pelo Centro Universitário do Pará (CESUPA) e mestrando da Universidade Federal do Pará (UFPA). Atualmente trabalho no SERPRO Regional Belém onde desenvolvemos extensivamente em Java, tanto em aplicações web quanto para desktop.

Neste espaço, estaremos apresentando dicas e abordando soluções e técnicas de uso de diversas características relacionadas ao desenvolvimento em Java, tais como utilização de formulários em AWT/Swing, processamento de dados em XML, persistência e serialização de objetos, conexões com banco de dados e JDBC, relatórios em JasperReports, web-services, performance em aplicações Java, entre outros.

Por hora é isso.  Um grande abraço e até os próximos artigos.

-->">
19/10/2006 09:08:00





 

Marcelo Andrade (mfandrade@gmail.com) é especialista em desenvolvimento de aplicações para Internet pela Universidade Federal do Pará, UFPA, onde também é aluno de mestrado em computação. Também possui graduação como bacharel em ciência da computação pelo Centro Universitário do Pará, CESUPA, desde 2003. É programador Php mas também tem experiência em Java para web e desktop.
Arquivo de atualizações
 2006

Estatísticas do Autor:
Número de posts: 2
Características dos posts deste autor:
Conteúdo:
Utilidade:
5 0
 
DevMedia Group - Tel: (21) 3382-5038 - www.devmedia.com.br
Todos os Direitos Reservados a DevMedia Group