Atenção: esse artigo tem um vídeo complementar. Clique e assista!
Neste artigo veremos algumas ferramentas ligadas ao desenvolvimento de soluções Java com XML, onde serão apresentados exemplos e as características da API nativa JAXP, da API JDOM e da biblioteca XStream.
Para que serve:
As ferramentas ajudam a realizar operações de leitura e escrita em arquivos XML, manipulando as informações do XML de diferentes formas usando a plataforma Java.
Em que situação o tema útil:
Os arquivos XML são usados para descrever diversos tipos de dados organizando-os de forma estruturada. Muito útil para guardar informações, configurações de sistemas e bastante utilizado como meio de comunicação entre sistemas. As ferramentas apresentadas nesse artigo ajudarão você a desenvolver soluções em Java que trabalham com arquivos XML.
Resumo DevMan:
Atualmente, dificilmente conseguimos desenvolver aplicações que se comunicam com outras sem utilizar XML. Para facilitar o trabalho com arquivos neste formato, encontramos no Java diversas ferramentas, como a API JAXP, JDOM e a biblioteca XStream. Além do uso para comunicação, o XML é empregado para possibilitar muitas outras funcionalidades. Por tudo isso, neste artigo, estudaremos as principais ferramentas que o Java nos oferece para manipular XML.
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 ...