Problemas ao Utilizar array de Strings no Xstream

Tenho o seguinte XML de exemplo que tenho interesse de tratar utilizando o XStream:

Obs: Não fiquei fazendo alias para os nomes dos tipos e colunas, é bem genérico para reproduzir a situação

<Elemento> <A>4DAF2BBB410393C0</A> <b> <a>valorA</a> <b>valorB</b> <c>valorC</c> <d>valorD</d> </b> <TipoC> <x>2</x> <y>Y</y> <y>T</y> <y>N</y> <y>B</y> <z>7</z> <z>7</z> <z>7</z> <z>7</z> <w>H</w> </TipoC> <TipoC> <x>4</x> <y>Y</y> <y>T</y> <y>N</y> <y>B</y> <z>7</z> <z>7</z> <z>7</z> <z>7</z> <w>O</w> </TipoC> </Elemento>

Para trata-lo. Criei os beans abaixo:

[code]package guj;

public class Elemento {

private String A;
private TipoB  b;
private TipoC[] c;
//getters and setters

}
[/code]

[code]package guj;

public class TipoB {

private String a;
private String b;
private String c;
private String d;
//getters and setters

}
[/code]

[code]package guj;

public class TipoC {

private String   x;
private String[] y;
private String[] z;
private String   w;
//getters and setters

}
[/code]

E gerei a classe principal de teste conforme abaixo:

[code]package guj;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;

public class Test {

public static void main(String[] args) {

	XStream xstream = new XStream(new DomDriver()); 
	
	// testar criação
	TipoC c1 = new TipoC();
	TipoC c2 = new TipoC();
	TipoB b = new TipoB();
	
	Elemento elem = new Elemento();
	
	// TipoC1
	c1.setX("2");
	c1.setY(new String[]{"Y","T","N","B"});
	c1.setZ(new String[]{"7","7","7","7"});
	c1.setW("H");

	//TipoC2
	c2.setX("4");
	c2.setY(new String[]{"Y","T","N","B"});
	c2.setZ(new String[]{"7","7","7","7"});
	c2.setW("O");

	b.setA("valorA");
	b.setB("valorB");
	b.setC("valorC");
	b.setD("valorD");
	
	elem.setA("4DAF2BBB410393C0");
	elem.setB(b);
	elem.setC(new TipoC[]{c1, c2});
	
	System.out.println(xstream.toXML(elem));

}

}
[/code]

O resultado foi o seguinte XML:

<guj.Elemento> <A>4DAF2BBB410393C0</A> <b> <a>valorA</a> <b>valorB</b> <c>valorC</c> <d>valorD</d> </b> <c> <guj.TipoC> <x>2</x> <y> <string>Y</string> <string>T</string> <string>N</string> <string>B</string> </y> <z> <string>7</string> <string>7</string> <string>7</string> <string>7</string> </z> <w>H</w> </guj.TipoC> <guj.TipoC> <x>4</x> <y> <string>Y</string> <string>T</string> <string>N</string> <string>B</string> </y> <z> <string>7</string> <string>7</string> <string>7</string> <string>7</string> </z> <w>O</w> </guj.TipoC> </c> </guj.Elemento>

Notem que comparando com a idéia original, ele falhou na geração dos arrays. A lib criou uma Tag “C” para colocar os elementos C dentro dele quando na verdade cada C deveria vir diretamente abaixo sem a necessidade de outra TAG.
O atributo Y e Z do TipoC também sofrem problema semelhante. Ele abre a tag respectiva e coloca cada String dentro dela. Eu queria que fosse feito diversas tags com o mesmo nome.

Alguém sabe o que fiz errado. Será necessário o uso dos “converters” para essa situação?

Agradeço qualquer ajuda.

Sim, mas é facinho.

basta criar os aliases e conversores

Conhece onde posso encontrar algum exemplo. O do site oficial é bem básico utilizando um bean com um atributo. E outro caso com mais atributos mas nada como essa situação.
O caso “real” possui até mesmo uma tag (atributo) no “TipoC” (do exemplo) que não seria obrigatório aparecer quando utiliza-se o método FromXML…