Ajuda para gerar arquivo XML?

Boa tarde, eu consigo criar um XML simples, mas não sei como criar um XML igual ao exemplo abaixo, ou seja, preciso repetir itens, imagino que devo criar um List ou ArrayList e jogar os nomes neste List, mas não sei como adicionar este List ao meu XML. Uso o XStream mas se alguém souber através de outra ferramente também serve,pois, estou perdido. Já pesquisei mas não consegui entender nos exemplos que estão disponíveis. Segue o modelo…

<cadastro>   
    <usuario id="0">   
        <nome>Usuario Um</nome>   
        <idade>23</idade>   
        <email>usuarioum@teste.com.br</email>   
    </usuario>     
    <usuario id="1">   
        <nome>Usuario Dois</nome>   
        <idade>22</idade>   
        <email>usuariodois@teste.com.br</email>   
    </usuario>     
    <usuario id="2">   
        <nome>Usuario Tres</nome>   
        <idade>20</idade>   
        <email>usuariotres@teste.com.br</email>   
    </usuario>     
    <usuario id="3">   
        <nome>Usuario Quatro</nome>   
        <idade>20</idade>   
        <email>usuarioquatro@teste.com.br</email>   
    </usuario>   
</cadastro>

Boa tarde casardo,

vc realmente precisa da propriedade id na tag usuário?. Pois se eu não me engano o xstream não da suporte para esse tipo de parse xml/java. Mas se vc puder utiliza a propriedade id como uma tag que esteja aninhada dentro da tag usuário o xstream aceita.

Aki tem um exemplo : http://xstream.codehaus.org/annotations-tutorial.html

Boa tarde Silasjr, então, a propriedade id na tag usuário não é muito importante, o que eu preciso mesmo é gerar o xml com vários usuários, ou seja, preciso repetir a tag usuário duas ou mais vezes. Mas não sei como fazer isso.

Entendi. O xstream dá esse suporte.

Observe o exemplo de mapeamento:

[code]package br.gov.am.sefaz.trb.gae.dam.servico.toxml;

import java.util.ArrayList;
import java.util.List;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamImplicit;

@XStreamAlias(value = “declaracao”)
public class Declaracao extends BaseConverter {

@XStreamImplicit(itemFieldName = "usuario")
private final List<Usuario> usuarios= new ArrayList<Usuario>();
    
   // get e sets...

}
[/code]

Ai apartir desse mapeamento da sua classe ele ler o xml e instância a coleção de usuários que tiver no seu xml.

Neste caso a estrutura do documento xml seria:

<declaracao>

          <usuario></usuario>

          <usuario></usuario>

          <usuario></usuario>

</declaracao>