Hola,
Tengo un juego en el que cargo distinta información desde un XML, y funciona bien... tengo el xml marcado como que debe ser compilado, y lo cargo con un simple Content.Load.
Ahora bien, ahora quiero hacer lo mismo con otro objeto (muy muy simple), que es este:
public class LevelData
{
public float monsterizationRatio;
public float levelDurationTime;
public float monstersSpeed;
public MonsterData[] monstersData;
public class MonsterData
{
public int id;
public bool available;
}
public LevelData()
{ }
}
para el cual genero el siguiente XML:
<?xml version="1.0" encoding="utf-8" ?>
<XnaContent>
<Asset Type="GameLogic.LevelData" monsterizationRatio="1" levelDurationTime="50000" monstersSpeed="50">
<monsterizationRatio>25</monsterizationRatio>
<levelDurationTime>50000.0</levelDurationTime>
<monstersSpeed>50.0</monstersSpeed>
<monstersData>
<Item id="1" available="true" />
</monstersData>
</Asset>
</XnaContent>
Nadamás compilar obtengo el error "XML element "id" not found". Es obvio que el ID sí está en el XML. En algunos foros he visto que el problema estaba en el orden de la declaración de los campos en el XML, pero os puedo asegurar que he probado todas las combinaciones posibles :-)
Alguna idea?
MonsterData es un array. Así como lo defines en el XML parece un campo de MonsterData...
eso es el serializador funciona un poco raro con arrays y vectores aki te dejo una entrada en mi blog q explicaba como funciona
http://kartones.net/blogs/codefreak/archive/2010/08/10/xna-usar-xml-en-la-360.aspx (http://kartones.net/blogs/codefreak/archive/2010/08/10/xna-usar-xml-en-la-360.aspx)
Si le cuentas un chiste a un XML, ¿lo deserializas?
diooossss.....que chiste mas maloooo.... ;)
venga ya... ahora funciona. Juro que ayer ya lo probé así... pero ahora compila... oye vete tu a saber xD
<?xml version="1.0" encoding="utf-8" ?>
<XnaContent>
<Asset Type="GameLogic.LevelData" monsterizationRatio="1" levelDurationTime="50000" monstersSpeed="50">
<monsterizationRatio>25</monsterizationRatio>
<levelDurationTime>50000.0</levelDurationTime>
<monstersSpeed>50.0</monstersSpeed>
<monstersData>
<Item>
<id>1</id>
<available>true</available>
</Item>
</monstersData>
</Asset>
</XnaContent>