Problemas com Xstream?

Pessoal eu recebo um xml de um web server, ele vem com atributo repitidos e fora de uma tag lista, exemplo do manual aqui no guj, tenho esse xml

<list> <Pessoa> <email>vinci_amorim@yahoo.com.br</email> <foneComercial class="Telefone"> <ddd>55</ddd> <numero>5555 5555</numero> </foneComercial> <nome>Vinci Pegoretti Amorim</nome> </Pessoa> </list>

e repitir as tags pessoa, para cada pessoa nova assim:

[code]


vinci_amorim@yahoo.com.br

55
5555 5555

Vinci Pegoretti Amorim

aaaaa@yahoo.com.br 55 5555 5555 aaaaa [/code]

mas recebo assim do webserver

<Pessoa> <email>vinci_amorim@yahoo.com.br</email> <foneComercial class="Telefone"> <ddd>55</ddd> <numero>5555 5555</numero> </foneComercial> <nome>Vinci Pegoretti Amorim</nome> </Pessoa> <Pessoa> <email>vinci_amorim@yahoo.com.br</email> <foneComercial class="Telefone"> <ddd>55</ddd> <numero>5555 5555</numero> </foneComercial> <nome>Vinci Pegoretti Amorim</nome> </Pessoa> <Pessoa> <email>vinci_amorim@yahoo.com.br</email> <foneComercial class="Telefone"> <ddd>55</ddd> <numero>5555 5555</numero> </foneComercial> <nome>Vinci Pegoretti Amorim</nome> </Pessoa> <Pessoa> <email>vinci_amorim@yahoo.com.br</email> <foneComercial class="Telefone"> <ddd>55</ddd> <numero>5555 5555</numero> </foneComercial> <nome>Vinci Pegoretti Amorim</nome> </Pessoa>

não tem uma tag lista abrindo ou fechado as tags pessoas, alguem pode me ajudar a como dizer ao Xstrem que a tag Pessoa é uma lista de pessoa?

Exemplo real eu recebo esse xml:

<obterListaVoosSaida> <jsessionid>ac1001b41faa866509f2f36d4c04834493eaddbfa798</jsessionid> <dsObservacao> <tsPartida>12MAR</tsPartida> <sgSemanaPartida>MON</sgSemanaPartida> <sgAeroportoOrigem>CGH</sgAeroportoOrigem> <cdFusoHorarioPartida>Z-3</cdFusoHorarioPartida> <sgAeroportoDestino>SDU</sgAeroportoDestino> <qtHoraLocalDiferenca>$0</qtHoraLocalDiferenca> <dsTextoLivre></dsTextoLivre> </dsObservacao> <viagem> <vlTotalTarifa></vlTotalTarifa> <voo> <adLinhaItem>1</adLinhaItem> <cdEmpresaAereaVoo>JJ</cdEmpresaAereaVoo> <cdNumeroVoo>3932</cdNumeroVoo> <assentos> <dsDisponibilidade> <clClasseReserva>Y</clClasseReserva> <qtAssentosDisponiveis>7</qtAssentosDisponiveis> </dsDisponibilidade> <dsDisponibilidade> <clClasseReserva>S</clClasseReserva> <qtAssentosDisponiveis>7</qtAssentosDisponiveis> </dsDisponibilidade> </assentos> <cdEquipamento>319</cdEquipamento> <cdRefeicao>R</cdRefeicao> <qtParadas>0</qtParadas> <dsDiasOperacao>XJS</dsDiasOperacao> <cdIndicadorBilheteEletronico>E</cdIndicadorBilheteEletronico> </voo> </viagem> <viagem> <vlTotalTarifa></vlTotalTarifa> <voo> <adLinhaItem>2</adLinhaItem> <cdEmpresaAereaVoo>JJ</cdEmpresaAereaVoo> <cdNumeroVoo>3934</cdNumeroVoo> <assentos> <dsDisponibilidade> <clClasseReserva>Y</clClasseReserva> <qtAssentosDisponiveis>7</qtAssentosDisponiveis> </dsDisponibilidade> <dsDisponibilidade> <clClasseReserva>N</clClasseReserva> <qtAssentosDisponiveis>7</qtAssentosDisponiveis> </dsDisponibilidade> </assentos> <cdEquipamento>319</cdEquipamento> <cdRefeicao>R</cdRefeicao> <qtParadas>0</qtParadas> <dsDiasOperacao>XS</dsDiasOperacao> <cdIndicadorBilheteEletronico>E</cdIndicadorBilheteEletronico> </voo> <voo> <adLinhaItem>2</adLinhaItem> <cdEmpresaAereaVoo>JJ</cdEmpresaAereaVoo> <cdNumeroVoo>3934</cdNumeroVoo> <assentos> <dsDisponibilidade> <clClasseReserva>Y</clClasseReserva> <qtAssentosDisponiveis>7</qtAssentosDisponiveis> </dsDisponibilidade> <dsDisponibilidade> <clClasseReserva>N</clClasseReserva> <qtAssentosDisponiveis>7</qtAssentosDisponiveis> </dsDisponibilidade> </assentos> <cdEquipamento>319</cdEquipamento> <cdRefeicao>R</cdRefeicao> <qtParadas>0</qtParadas> <dsDiasOperacao>XS</dsDiasOperacao> <cdIndicadorBilheteEletronico>E</cdIndicadorBilheteEletronico> </voo> </viagem> </obterListaVoosSaida>

vcs podem reparar que existe tags viagem que se repetem e dentro da tag viagem existe a tag voo que se repete, alguem pode me ajudar a como serializar esse xml em obj.

Crie um bean que contém um arrayList do outro exemplo:

Ex:

        private ArrayList<ItemDTO> itens;

	public ArrayList<ItemDTO> getItens() {
		return itens;
	}

	public void setItens(ArrayList<ItemDTO> itens) {
		this.itens = itens;
	}

Transformando em xml

public static void main(String[] args) {
		XStream xstream = new XStream();
		xstream.alias("envelope", EnvelopeDTO.class);
		xstream.alias("item", ItemDTO.class);
		ArrayList<ItemDTO> itens = new ArrayList<ItemDTO>(); 
		EnvelopeDTO envelope = new EnvelopeDTO();
		for(int i=0;i<10;i++){
			ItemDTO iten= new ItemDTO();
			iten.setValorTotal(i);
			iten.setQtd(i+1);
			itens.add(iten);
			envelope.setItens(itens);
		}
		System.out.println(xstream.toXML(envelope));
}

Resultado ficaria assim:

<envelope>
  <itens>
    <item>
      <qtd>1</qtd>
      <uni>0.0</uni>
      <t>0.0</t>
    </item>
    <item>
      <qtd>2</qtd>
      <uni>0.0</uni>
      <t>1.0</t>
    </item>
    <item>
      <qtd>3</qtd>
      <uni>0.0</uni>
      <t>2.0</t>
    </item>
    <item>
      <qtd>4</qtd>
      <uni>0.0</uni>
      <t>3.0</t>
    </item>
    <item>
      <qtd>5</qtd>
      <uni>0.0</uni>
      <t>4.0</t>
    </item>
    <item>
      <qtd>6</qtd>
      <uni>0.0</uni>
      <t>5.0</t>
    </item>
    <item>
      <qtd>7</qtd>
      <uni>0.0</uni>
      <t>6.0</t>
    </item>
    <item>
      <qtd>8</qtd>
      <uni>0.0</uni>
      <t>7.0</t>
    </item>
    <item>
      <qtd>9</qtd>
      <uni>0.0</uni>
      <t>8.0</t>
    </item>
    <item>
      <qtd>10</qtd>
      <uni>0.0</uni>
      <t>9.0</t>
    </item>
  </itens>
</envelope>