Bom pra começar esse post se faz necessário uma breve introdução do que é XML, suas possíveis utilizações, seguindo a linhagem do blog, vou tentar resumir da melhor maneira possível sem muitos termos técnicos,pois o foco desse post é o desenvolvimento
XML (eXtensible Markup Language)
Como o próprio nome já diz XML é uma linguagem de marcação (que utiliza tags), se assemelha ao HTML por exemplo, o objetivo do XML é o transporte de dados e não a exibição dos mesmos.
XML pode ser utilizado em vários aspectos do desenvolvimento:
Você pode criar as suas próprias tags de acordo com sua necessidade.
Mas a grande vantagem do XML é que através da sua padronização resolve o problema de incompatibilidade existentes no "mundo do desenvolvimento", isso mesmo, com o uso do XML, os desenvolvedores se tornam independentes de preocupações com hardware, software, S.O's e linguagens de programação.
Ex:
"Um arquivo XML gerado em um S.O Windows com a linguagem de programação C# (Sharp) pode facilmente ser interpretado em um S.O Linux com a linguagem de programação Java, para isso é necessário somente saber qual padrão esse arquivo foi gerado e será possível a recuperação dos dados"
Segue abaixo alguns links que podem ser interessantes para saber um pouco mais sobre XML:
http://www.w3.org/XML/
http://www.w3schools.com/xml/
XML pode ser utilizado em vários aspectos do desenvolvimento:
- Armazenamento de Dados;
- Parametrização e configuração de ambientes;
- Web Services.
Você pode criar as suas próprias tags de acordo com sua necessidade.
Mas a grande vantagem do XML é que através da sua padronização resolve o problema de incompatibilidade existentes no "mundo do desenvolvimento", isso mesmo, com o uso do XML, os desenvolvedores se tornam independentes de preocupações com hardware, software, S.O's e linguagens de programação.
Ex:
"Um arquivo XML gerado em um S.O Windows com a linguagem de programação C# (Sharp) pode facilmente ser interpretado em um S.O Linux com a linguagem de programação Java, para isso é necessário somente saber qual padrão esse arquivo foi gerado e será possível a recuperação dos dados"
Segue abaixo alguns links que podem ser interessantes para saber um pouco mais sobre XML:
http://www.w3.org/XML/
http://www.w3schools.com/xml/
Vamos ao desenvolvimento...
Para exemplo vou utilizar uma lib que facilita muita nossa vida para a manipulação XML, é a XSream, para esse caso específico estou usando xstream-1.3.1, mas para download no site nesta data já se encontra disponível a ver 1.4.4.
O mais interessante dessa lib e desse exemplo é que o arquivo gerado é criado a partir de um objeto Java, isso mesmo podemos trabalhar tranquilamente com o padrão de orientação a objetos, utilizando os métodos getters e setters para setar e recuperar valores e a XStream faz esse intermédio tornando as coisas muito mais fáceis.
Esse exemplo é o mais básico de todos, no site da XStream existem vários tutoriais passo a passo para diversas formas de utilização, nos próximos posts pretendo disponibilizar a manipulação de estruturas mais complexas como listas por exemplo.
O mais interessante dessa lib e desse exemplo é que o arquivo gerado é criado a partir de um objeto Java, isso mesmo podemos trabalhar tranquilamente com o padrão de orientação a objetos, utilizando os métodos getters e setters para setar e recuperar valores e a XStream faz esse intermédio tornando as coisas muito mais fáceis.
Esse exemplo é o mais básico de todos, no site da XStream existem vários tutoriais passo a passo para diversas formas de utilização, nos próximos posts pretendo disponibilizar a manipulação de estruturas mais complexas como listas por exemplo.
Gerando o arquivo...
Esse pequeno trecho de códio já "transforma" o nosso objeto do tipo pessoa (nome, idade) para o formato XML:
/** Instancia simples da classe XSTream **/
XStream xStream = new XStream();
/** Criando apelido para a classe que gerara o xml (opcional) **/
xStream.alias("Pessoa", Pessoa.class);
E com mais esse trecho de código geramos o arquivo em disco:
/** Criando o arquivo em disco **/
FileWriter file = new FileWriter("C:\\pessoa.xml", true);
file.write(xStream.toXML(pessoa));
file.close();
Lendo o arquivo...
Para a leitura do arquivo gerado em disco utilizamos o código a seguir:
/**
* Instanciando objeto da Classe XStream(DomDriver é utilizado para o
* fazer o parse sem a necessidade de add novas libs
**/
XStream xStream = new XStream(new DomDriver());
/** Lendo o arquivo em disco **/
File file = new File("C:\\pessoa.xml");
FileInputStream input = new FileInputStream(file);
xStream.alias("Pessoa", Pessoa.class);
/** Fazendo o cast para o tipo de objeto Pessoa **/
Pessoa xml = (Pessoa) xStream.fromXML(input);
/** Imprimindo o resultado no console **/
System.out.println("Nome :" + xml.getNome());
System.out.println("Idade :" + xml.getIdade());
Basicamente é isso aí, segue abaixo os arquivos para download da lib (Xstream.1.3.1) e do projeto (Eclipse).
Esse pequeno trecho de códio já "transforma" o nosso objeto do tipo pessoa (nome, idade) para o formato XML:
/** Instancia simples da classe XSTream **/
XStream xStream = new XStream();
/** Criando apelido para a classe que gerara o xml (opcional) **/
xStream.alias("Pessoa", Pessoa.class);
E com mais esse trecho de código geramos o arquivo em disco:
/** Criando o arquivo em disco **/
FileWriter file = new FileWriter("C:\\pessoa.xml", true);
file.write(xStream.toXML(pessoa));
file.close();
Lendo o arquivo...
Para a leitura do arquivo gerado em disco utilizamos o código a seguir:
/**
* Instanciando objeto da Classe XStream(DomDriver é utilizado para o
* fazer o parse sem a necessidade de add novas libs
**/
XStream xStream = new XStream(new DomDriver());
/** Lendo o arquivo em disco **/
File file = new File("C:\\pessoa.xml");
FileInputStream input = new FileInputStream(file);
xStream.alias("Pessoa", Pessoa.class);
/** Fazendo o cast para o tipo de objeto Pessoa **/
Pessoa xml = (Pessoa) xStream.fromXML(input);
/** Imprimindo o resultado no console **/
System.out.println("Nome :" + xml.getNome());
System.out.println("Idade :" + xml.getIdade());
Basicamente é isso aí, segue abaixo os arquivos para download da lib (Xstream.1.3.1) e do projeto (Eclipse).
xstream-1.3.1.jar |
xmlcreation.zip |
Até a próxima.
Hands On!
Daniel Paulo de Assis
Hands On!
Daniel Paulo de Assis