XStream: Tem como fazer isso?  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
le-silva
Java Ninja
[Avatar]

Membro desde: 31/01/2003 10:21:32
Mensagens: 260
Offline

Estou usando XStream para fazer serialização e deserialização de POJO/XML, e estou com um probleminha.

Este é o XML gerado a partir do meu POJO:


Meus problemas:

1- Queria nomear as tags de conteúdo das coleções



Ao invés de <int>, queria que fosse <idade>.

2- Queria omitir a tag <outer-class reference="../../.."/>, mas acho que ela é requerida por causa das innerclasses que estou usando.

O problema é que a aplicação que vai me enviar um XML não vai saber informar esta tag, porque são desenvolvedores de uma outra equipe.

---

Considerando a possibilidade quase certa de que o XStream não possibilite resolver esses probleminhas, alguém poderia me sugerir alguma outra API de Java/XML semelhante?

Preciso serializar/deserializar (em XML) alguns objetos que serão enviados como parametro de entrada e recebidos como parametro de saida de algumas stored procedures que trabalham com XML TYPE.

Alguém pode me dar um help?

Desde já... OBRIGADO!

Leandro Silva

{ :blog => 'leandrosilva.com.br' , :twitter => '@codezone' }
[Email] [WWW]
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

Web Services???

Senão, use algo como JAXP.

gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
le-silva
Java Ninja
[Avatar]

Membro desde: 31/01/2003 10:21:32
Mensagens: 260
Offline

Oi danieldestro, beleza?

Cara, é que a empresa que eu trabalho tem um legado de stored procedures num bd ORACLE.

Para padronizar o acesso a este legado, por diversos sistemas (alguns em Java, outros não), foi convencionado que as procs receberam um XML por parametro de entrada e esta retornará um XML como parametro de saída.

JAXP resolveria meu problema?

Leandro Silva

{ :blog => 'leandrosilva.com.br' , :twitter => '@codezone' }
[Email] [WWW]
le-silva
Java Ninja
[Avatar]

Membro desde: 31/01/2003 10:21:32
Mensagens: 260
Offline

Eu pensei em usar JDOM. Até fiz uns testes.

É simples e tal, mas o problema é que vai dar muito trabalho, porque cada proc PL/SQL tem um formato de XML de entrada/saída diferente da outra.

Então, pra cada proc que eu for executar e pegar o seu retorno, tenho que ter um XML diferente, tanto pra entrada quanto pra saida.

O mundo cruel...

Leandro Silva

{ :blog => 'leandrosilva.com.br' , :twitter => '@codezone' }
[Email] [WWW]
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

Cara você já tentou usar o Xtream dessa maneira?




Assim ele não fará nenhuma referência de sua classes.
http://xstream.codehaus.org/graphs.html

This message was edited 1 time. Last update was at 01/11/2007 10:53:45

le-silva
Java Ninja
[Avatar]

Membro desde: 31/01/2003 10:21:32
Mensagens: 260
Offline

Pedrosa wrote:Cara você já tentou usar o Xtream dessa maneira?




Assim ele não fará nenhuma referência de sua classes.
http://xstream.codehaus.org/graphs.html


Cara, eu tentei, mas rolou uma exception: com.thoughtworks.xstream.core.TreeMarshaller$CircularReferenceException

Leandro Silva

{ :blog => 'leandrosilva.com.br' , :twitter => '@codezone' }
[Email] [WWW]
mchiareli
JavaEvangelist
[Avatar]

Membro desde: 04/04/2006 15:14:50
Mensagens: 397
Offline

É possivel fazer isso com o xstream sim...

Coloca o código da sua classe aqui.

This message was edited 2 times. Last update was at 01/11/2007 11:09:50


codifica.wordpress.com
[WWW] [MSN]
le-silva
Java Ninja
[Avatar]

Membro desde: 31/01/2003 10:21:32
Mensagens: 260
Offline

mchiareli wrote:Sobre a pergunta 1 é possibel fazer isso sim....


Poderia me dizer como? Porque já procurei, procurei, procurei... e nada!

Tks!

Leandro Silva

{ :blog => 'leandrosilva.com.br' , :twitter => '@codezone' }
[Email] [WWW]
le-silva
Java Ninja
[Avatar]

Membro desde: 31/01/2003 10:21:32
Mensagens: 260
Offline



Eu sei que innerclasse não é lá uma boa prática, mas foi a única maneira que encontrei de ter menos .java, já que, olha só... pra proc "X", Apartamento tem os atributos "a" e "b", mas pra proc "Y", Apartamento tem os atributos "k" e "m", por exemplo.

Essas procs são só uns serviços que eu consumo, não são parte da minha aplicação.

Bom, de qualquer forma, taí o código...

Valeu!!!

This message was edited 1 time. Last update was at 01/11/2007 11:17:07


Leandro Silva

{ :blog => 'leandrosilva.com.br' , :twitter => '@codezone' }
[Email] [WWW]
marciocamurati
JavaEvangelist
[Avatar]

Membro desde: 29/05/2004 14:54:36
Mensagens: 322
Localização: São Paulo
Offline

Utilizando o alias do XStream não ajudaria ?

http://xstream.codehaus.org/alias-tutorial.html

[]s

Marcio Camurati
[WWW] [MSN] [ICQ]
le-silva
Java Ninja
[Avatar]

Membro desde: 31/01/2003 10:21:32
Mensagens: 260
Offline

marciocamurati wrote:Utilizando o alias do XStream não ajudaria ?

http://xstream.codehaus.org/alias-tutorial.html

[]s


Eu tô usando, nas classes.

Pelo que eu sei, não dá pra usar diferente do que já estou fazendo.

Leandro Silva

{ :blog => 'leandrosilva.com.br' , :twitter => '@codezone' }
[Email] [WWW]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team