Problema com Xstream

E ae,

eu venho trabalhando com o Xstream a algum tempo mas sempre com arquivos xml simples.

me deparei com um problema aparentemente bobo.

o xml é este:

<?xml version='1.0' encoding='UTF-8'?>
<eveapi version="2">
  <currentTime>2010-12-21 14:33:30</currentTime>
  <result>
    <rowset columns="groupName,groupID" key="groupID" name="skillGroups">
      <row groupID="266" groupName="Corporation Management">
        <rowset columns="typeName,groupID,typeID,published" key="typeID" name="skills">
          <row groupID="266" published="1" typeID="11584" typeName="Anchoring">
            <description>Skill at Anchoring Deployables. Can not be trained on Trial Accounts.</description>
            <rank>3</rank>
            <rowset columns="typeID,skillLevel" key="typeID" name="requiredSkills"/>
            <requiredAttributes>
              <secondaryAttribute>charisma</secondaryAttribute>
              <primaryAttribute>memory</primaryAttribute>
            </requiredAttributes>
            <rowset columns="bonusType,bonusValue" key="bonusType" name="skillBonusCollection">
              <row bonusType="canNotBeTrainedOnTrial" bonusValue="1"/>
            </rowset>
          </row>
          <row groupID="266" published="0" typeID="3369" typeName="CFO Training">
            <description>Skill at managing corp finances. 5% discount on all fees at non-hostile NPC station if acting as CFO of a corp. </description>
            <rank>3</rank>
            <rowset columns="typeID,skillLevel" key="typeID" name="requiredSkills">
              <row skillLevel="2" typeID="3363"/>
              <row skillLevel="3" typeID="3444"/>
            </rowset>
            <requiredAttributes>
              <secondaryAttribute>charisma</secondaryAttribute>
              <primaryAttribute>memory</primaryAttribute>
            </requiredAttributes>
            <rowset columns="bonusType,bonusValue" key="bonusType" name="skillBonusCollection"/>
          </row>
        </rowset>
      </row>
    </rowset>
  </result>
  <cachedUntil>2007-12-23 21:51:40</cachedUntil>
</eveapi>

depurando ele monta tranquilamente até a primeira coleção “rowset”. Quando declaro a segunda coleção o xstram meio que se perde.

O Erro é:

Exception in thread "main" com.thoughtworks.xstream.converters.ConversionException: Element row of type eveapi.pojo.SkillTree.ApiSkillTreeResultSkill is not defined as field in type eveapi.pojo.SkillTree.ApiSkillTreeResultSkills
---- Debugging information ----
class               : eveapi.pojo.SkillTree.ApiSkillTreeBody
required-type       : eveapi.pojo.SkillTree.ApiSkillTreeResultSkills
path                : /eveapi/result/rowset/row/rowset/row
line number         : 8
-------------------------------

O fato é a classe ApiSkillTreeResultSkill é o item a ser populado na lista dentro de ApiSkillTreeResultSkills

A minha definição esta da sequinte forma:

                        //--- root
			xstream.alias("eveapi", ApiSkillTreeBody.class);
			xstream.aliasAttribute(ApiSkillTreeBody.class, "version","eveapi");
			//--- result
			xstream.alias("result", ApiSkillTreeResult.class);
			
			//-- SkillGroups
			xstream.alias("rowset", ApiSkillTreeResultSkillGroups.class);
			xstream.aliasAttribute(ApiSkillTreeResultSkillGroups.class, "name","rowset");
			xstream.aliasAttribute(ApiSkillTreeResultSkillGroups.class, "key","rowset");
			xstream.aliasAttribute(ApiSkillTreeResultSkillGroups.class, "columns","rowset");
			xstream.addImplicitCollection(ApiSkillTreeResultSkillGroups.class, "Skillgroups",ApiSkillTreeResultSkillGroup.class);
			
			//-- Group
			xstream.alias("row", ApiSkillTreeResultSkillGroup.class);
			xstream.aliasAttribute(ApiSkillTreeResultSkillGroup.class, "groupName","row");
			xstream.aliasAttribute(ApiSkillTreeResultSkillGroup.class, "groupID","row");
			
						
			//-- Skills
			xstream.alias("rowset", ApiSkillTreeResultSkills.class);
			xstream.aliasAttribute(ApiSkillTreeResultSkills.class, "name","rowset");
			xstream.aliasAttribute(ApiSkillTreeResultSkills.class, "key","rowset");
			xstream.aliasAttribute(ApiSkillTreeResultSkills.class, "columns","rowset");
			xstream.addImplicitCollection(ApiSkillTreeResultSkills.class, "skillList", ApiSkillTreeResultSkill.class);
							
			
			//--Skill
			xstream.alias("row", ApiSkillTreeResultSkill.class);
			xstream.aliasAttribute(ApiSkillTreeResultSkill.class, "typeName","row");
			xstream.aliasAttribute(ApiSkillTreeResultSkill.class, "groupID","row");
			xstream.aliasAttribute(ApiSkillTreeResultSkill.class, "typeID","row");
			xstream.aliasAttribute(ApiSkillTreeResultSkill.class, "published","row");

Obrigado pela ajuda

Cara, você precisa mesmo usar ao XStream?
O Simple XML é muuuito mais fácil de utilizar, além de ter o mesmo “poder” do XStream.
Dê uma olhada.

http://simple.sourceforge.net/

[]´s