Alex Florentino

KISS - Keep It Simple, Stupid

Archive for March, 2008

Controle Financeiro Open Source

Monday, March 24th, 2008

Meu amigo Tiago Dornelas e Talita Pagani estão com um super projeto de controle financeiro open source e resumidamente eu vi o que eles já produziram e fiquei super empolgado, afinal eu mesmo já tentei iniciar um projeto neste domínio e não tive sucesso.

Eles estão trabalhando com o PHP neste projeto, nada contra o PHP, mais acredito que esta seria uma ótima oportunidade para aplicar o Ruby On Rails e ganhar experiência nesta proeminente plataforma.

Então implementarei uma versão do projeto em Ruby, a ideia é ter a mesmas funcionalidades, layout e banco de dados, mais em Ruby On Rails.

então em breve publicarei mais sobre isso.

Rápida Introdução a XMLBEANS

Monday, March 3rd, 2008

XMLBeans é uma ótima ferramenta para quem precisa trabalhar com XML, por exemplo, fazer uma integração entre dois sistemas utitlizando troca de arquivos em formato xml , para entender como essa ferramenta funciona é necessário ter algum conhecimento sobre XML Schema.

O que é XML Schema ? resumidamente esta ferramenta foi projetada para substituir as DTD , ou seja, é forma de definir e validar um documento XML.

Aqui um ótimo tutorial sobre XML Schema, neste tutorial iremos trabalhar com XML BEANS.

O que vamos fazer : Nosso sistema de comércio online deverá permitir o envio de pedido em formato XML este arquivo recebido deverá ser transformado em java bean com os seus respectivos dados.

Existem várias formas de se fazer essa tarefa mas com certeza usar xmlbeans é realmente uma forma elegante de resolver o problema.

A Seguir um passo a passo , antes de prosseguir é necessário instalar xml beans, instruções aqui.

Nosso arquivo que representa um novo pedido:

Pedido.xml


<?xml version="1.0">
<Pedido cliente_id="1">
<Item produto_id="10" quantidade="10" />
<Item produto_id="10" quantidade="10" />
</Pedido>

Nosso pequeno arquivo xsd(XML Schema):

Pedido.xsd


<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:pedido="http://www.alexflorentino.com/pedido"
targetNamespace="http://www.alexflorentino.com/pedido"
elementFormDefault="qualified">

<xs:element name="Pedido">
<xs:complexType>
<xs:sequence>
<xs:element name="Item" type="pedido:Item" />
</xs:sequence>
<xs:attribute name="client_id" type="xs:int" use="required"/>
</xs:complexType>
</xs:element>

<xs:complexType name="Item">
<xs:attribute name="produto_id" type="xs:int" use="required"/>
<xs:attribute name="quantidade" type="xs:int" use="required"/>
</xs:complexType>

</xs:schema>

Este arquivo resumidamente descreve como um arquivo de pedido deve ser formatado.

Agora precisamos inserir em nosso arquivo de pedido uma referência ao nosso Arquivo XSD.

Pedido.xml


<?xml version="1.0" encoding="UTF-8"?>
<Pedido cliente_id="1"  xmlns="http://www.alexflorentino.com/pedido"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="pedido.xsd">

<Item produto_id="10" quantidade="10" />

<Item produto_id="10" quantidade="10" />

</Pedido>

Pronto! com esses artefatos criados precisamos agora rodar um comando mágico, no diretório onde você criou os arquivos pedido.xml e pedido.xsd, execute:

scomp -out pedido.jar pedido.xsd

lembre-se para este comando funcionar você precisa ter xml beans devidamente instalado.

Basicamente este comando irá criar um monte de código para você, código que trata todo o trabalho que você poderia ter ao trabalhar com arquivo xml em java.
Para isso basta inserir o arquivo pedido.jar(gerado com o comando anterior) na sua aplicação junto com as bibliotecas do xml beans.

exemplo o trecho de código abaixo ilustra o processamento do arquivo de pedido.


PedidoDocument pedidoDoc = PedidoDocument.Factory.parse(new File("pedido.xml"));

Pedido pedido = pedidoDoc.getPedido();

System.out.println("Client_id:"+pedido.getClientId());
System.out.println("XMLLIDO \n:"+pedidoDoc.toString());

repare neste código você acabou de ler o arquivo pedido.xml diretamente para o seu objeto java Pedido, sem qualquer preocupação com detalhes de leitura do arquivo xml.

Para finalizar, xmlbeans é uma ferramenta poderoza para o trabalho com arquivo xml quando você já tem xsd já definidos, um exemplo real : você quer integrar com sistema .Net e certamente o dono do sistema em .Net tem os arquivos xsd e lhe fornecerá com isso o tempo de integração cai drasticamente, né ?.

O XML Beans também evita a famosa programação orienta a String :) já que você não precisa ficar lendo este arquivo xml, dentre muitas outras vantagens.
Baixe aqui os arquivos deste tutorial.