Cadastre-se Revistas DevMedia Cursos
 

Space de Paulo Igor A. Godinho
Busca Autor


Últimas 20 atualizações de Paulo Igor A. Godinho

Artigo - Java e XML se entendem - Artigo easy Java Magazine 5

Hoje em dia é bastante comum encontrar aplicações utilizando arquivos XML para auxiliar na configuração, mapeamento de dados, comunicação entre sistemas de diferentes plataformas, entre outras abordagens que o XML possibilita.

A linguagem XML (eXtensible Markup Language) quando surgiu, tinha como propósito padronizar a descrição de diversos tipos de dados, facilitando o compartilhamento de informações na internet. Atualmente os arquivos XML possuem um grande potencial para prover interoperabilidade entre sistemas, estabelecendo um meio de comunicação uniforme entre ambientes diferentes.

A plataforma Java possui diversas formas de trabalhar com XML, algumas nativas da API e outras que são encontradas em outras ferramentas e bibliotecas. Essas ferramentas buscam facilitar e flexibilizar o uso de XML com Java, como JAXB (Java Architecture for XML Binding), JAXP (Java API for XML Processing), JDOM e XStream.

Neste artigo será utilizada a API nativa JAXP, a API JDOM e a biblioteca XStream com o objetivo de apresentar como trabalhar com XML usando a plataforma Java, abordando desde a manipulação de XML com recursos nativos da plataforma, até a adoção de outras ferramentas que simplificam a manipulação de arquivos XML em sistemas construídos em Java.

Manipulando XML nativamente

A plataforma Java possui suporte nativo para trabalhar com XML desde a versão 5.0, quando utilizava a API JAXP 1.3. Atualmente, com o Java SE 6.0, o JAXP se encontra na versão 1.4. Será com esta API que iniciaremos nossos estudos sobre Java e XML.

O JAXP é baseado na utilização de parsings (tradutores), entre eles, estão a API SAX e o modelo DOM, que são tecnologias desenvolvidas para trabalhar com documentos.

O DOM (Document Object Model) é um modelo criado para interagir com documentos no padrão HTML, XHTML e XML, onde é possível acessar e alterar o conteúdo desses documentos. O DOM possibilita trabalhar em qualquer parte do documento sem precisar ler sequencialmente até o ponto desejado.

Para exemplificar melhor o funcionamento do DOM, imagine uma pessoa respondendo a uma prova. Algumas pessoas respondem uma pergunta após a outra, do início ao fim, de forma sequencial. Mas para algumas é mais interessante responder as mais fáceis primeiro, e para isso, elas pulam as mais difíceis e depois voltam, até finalizarem a prova. O DOM funciona como as pessoas que respondem a prova de forma não sequencial, diferente do SAX.

O SAX (Simple API for XML) é um parser que realiza a leitura de documentos XML de forma sequencial, uma alternativa muito popular ao DOM. Ele faz o parsing traduzindo os dados do documento para a estrutura interna da API, onde são disponibilizadas as operações para recuperar os dados, ou modificá-los.

Diferente do DOM, o SAX não possui um modelo rígido para onde os dados são traduzidos, deixando à disposição do usuário a possibilidade de personalizá-lo.

Como não é objetivo desse artigo aprofundar-se na especificação dos parsings de XML, você pode ver mais detalhes da API SAX e do DOM nos sites: www.saxproject.org e www.w3.org/DOM/, respectivamente.

Agora, empregando a API JAXP, vamos desenvolver uma aplicação para ler e alterar os dados de um XML. Para isso, utilizaremos um modelo simples para representar os dados de uma agenda pessoal, onde estarão organizadas as informações de diversos contatos, como nome, telefone, celular e e-mail. Esses dados estão descritos no arquivo agenda.xml, que pode ser visto na Listagem 1.

Conheça mais sobre as implementações SAX e DOM observando os exemplos disponíveis no site: http://java.sun.com/developer/codesamples/xml.html.

Listagem 1. Estrutura do XML da agenda, conteúdo do arquivo agenda.xml.

    Paulo

    32223333

    81118888

    paulo@mail.com

 

 

    Igor

    32323232

    88881111

    igor@mail.com

 

 

Para acessar e manipular os dados do XML, primeiro realiza-se o parser do arquivo para um objeto Java. A API JAXP possui a classe DocumentBuilder, que através do método parse() realiza a tradução do XML para a estrutura da interface Document (veja a Listagem 2).

A interface Document representa todo o conteúdo do arquivo XML que foi traduzido. A partir deste objeto (document) é possível realizar qualquer operação nas informações traduzidas, como veremos nos parágrafos a seguir.

 

Listagem 2. Trecho que realiza a carga do arquivo XML.

DocumentBuilder builder = null;

Document document = null;

try{

 

  builder = Docume

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
08/04/2011 16:41:00





 

bacharel em Sistemas de Informação e Mestre em Ciência da Computação. Desenvolve sistemas há 6 anos, onde já atuou em projetos para o setor bancário, P&D, Departamento de Trânsito e Companhia de Saneamento Básico, ministra aulas em disciplinas ligadas a Engenharia de Software e Metodologias Ágeis, CSM pela Scrum Alliance e atualmente trabalha como Engenheiro de Software da Ci&T.
Arquivo de atualizações
 2011

Estatísticas do Autor:
Número de posts: 1
 
DevMedia Group - Tel: (21) 3382-5038 - www.devmedia.com.br
Todos os Direitos Reservados a DevMedia Group