XStream p/ ler XML? [Resolvido]

Olá a todos,
estava lendo a respeito do XStream p/ poder “transformar” arquivos XML em objetos e vice-versa.
porém, em todos os exemplos que eu vi e que consegui fazer, eu tenho obrigatoriamente que primeiramente transformar o objeto em XML p/ depois poder fazer o inverso, é isso mesmo?
porque o que eu tô querendo fazer é pegar um arquivo XML já existente na minha máquina e transformar ele num objeto. Como fazer isso? É possível pelo XStream?

O XStream propriamente dito não faz o que você tá querendo, porém, eu posso te falar duas coisas que podem de ajudar:
1º - entre no site www.vraptor.org/xmodeller, e digite seu XML lá que ele vai te dar a configuracão do XStream
2º - Existe o XML DOM, dá uma olhada no site, ele tem a opcão de criar “nodes” que talvez seja mais o que você queira

[quote=gui0rafa]O XStream propriamente dito não faz o que você tá querendo, porém, eu posso te falar duas coisas que podem de ajudar:
1º - entre no site www.vraptor.org/xmodeller, e digite seu XML lá que ele vai te dar a configuracão do XStream
2º - Existe o XML DOM, dá uma olhada no site, ele tem a opcão de criar “nodes” que talvez seja mais o que você queira[/quote]

Se o seu objetivo é trabalhar com beans, JAXB pode lhe ser útil:
http://www.onjava.com/pub/a/onjava/2004/12/15/jaxb.html

Ao inves de usar DOM, use JDOM. É mais light:
http://www.jdom.org/

JAXB resolveu rapidamente um problema que meu colega teve - ele recebia um XML cujo XML Schema foi-lhe dado (arquivo .XSD), e tinha de transformá-lo em um objeto.
Só que ele não era muito experiente com Java.
Então a gente pegou o tal do xjc (converte .XSD em classes Java que usam JAXB), e rapidamente o código para usar com JAXB foi gerado e o problema dele foi resolvido.

Hm, ou não entendi o problema ou o pessoal acima errou. Eu transformo XML que não foi gerado pelo XStream em Objetos tranquilamente.

Exemplo:

// windows.xml
<windows>
    <window>
        <id>1</id>
    </window>
    <window>
        <id>2</id>
    </window>
</windows>

// Window.java
public class Window {
    private Long id;
}

// Test.java
XStream xstream = new XStream();
xstream.alias( "windows", List.class );
xstream.alias( "window", Window.class );
List< Window > windows = ( List< XMLWindow > ) xstream.fromXML( new FileReader( "windows.xml" ) );

Era isso mesmo Lipe… funcionou direitinho :slight_smile: valeu!