MJ17 - XStream API

Olá Pessoal,

Eu tenho uma pergunta em relação ao uso da API XStream:

  • Como faço para usar atributos?
    Eu encontrei isso:

    [b]xstream.useAttributeFor(String.class);
    xstream.useAttributeFor(Integer.class);[/b]
    

Mas, têm um porém…isso nao pode ser algo genérico…onde todas as Strings se tornem attributos, quero que somente alguns sejam. (obs: eu ja tenho o XML montado, e nao posso alterar sua estrutura.)

Obrigado.

none?

alguem teria um exemplo?

Tks.

[quote=Duque]none?
alguem teria um exemplo?[/quote]

Imagino que MK17 seja referência a uma edição da Mundo Java … como não tenho e não li o seu post ficou muito confuso e não deu bem pra identificar seu problema.

O que entendi: Você tem um XML montado e quer transforma-lo em um objeto usando o XStream, é isso? Se for eu não recomendaria o XStream, ele é para serializar e deserializar objetos, não para parsear XMLs e criar objetos.

Para esse fim recomendo mais o Digester

OI smota,

bom para mim, transformas um objeto com estado para um arquivo XML é serializar.

POrque nao poderia usa-lo?

[]´s

anyone?

XStream é mais rápido e mais simples que o Digester… e ele é uma camada de transformação de objetos em xml sim… e vice-versa…

Fora isso, para usar atributos sugiro que você baixe o snapshot da versão atual em:

Latest snapshot
http://xstream.codehaus.org/download.html

Aí basta utilizar o metodo XStream.useAttributeFor(fieldName, type);

E seus similares…

Abraço

Guilherme

ps: para ganhar ainda mais produtividade use java5+xstream: anotacoes
ps2: para ganhar mais velocidade voce pode usar stax ou outros tipos de drivers… de uma olhada no tutorial e participe da lista de discussao do grupo… tem bastante coisa interessante

Obrigado Guilherme!!

OLá Guilherme,

uma pergunta…mas como incluo a tag principal no arquivo quando uso o método toXML?

"<?xml version="1.0" encoding="UTF-8"?>"

Obrigado.

Isso depende do driver que voce utiliza. O xstream tem o objetivo de escrever para fluxos de xml (por isso o nome), portanto ele nao tem como afetar o cabecalo… dependendo do driver que voce utilizar ele acrescenta automaticamente, caso contrario voce tem que adicionar na mao

Abraco

Guilherme