Hola amigos!

Les hago una consulta.
Tengo un XML con un tag con un string formado por espacios en blanco como
por ejemplo:

<string>"         "</string>

Cuando quiero deserializar, al encontrar este string con blancos, lo ignora
completamente. En cambio, si yo le pongo por lo menos una letra, entonces sí
lo deserializa.
Les cuento que la estructura de clases la obtuve a partir de un XSD usando
la herramienta XSD.exe que viene con el Framework.
He armado un ejemplito que pinta de cuerpo entero mi problema (lo saqué de
http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmltextattribute.aspx).


Les muestro como estoy deserializando:




public class Program

{

public class Group1

{

     [XmlText(typeof(string))]

     [XmlElement(typeof(int))]

     [XmlElement(typeof(double))]

     public object[] All = new object[] { 321, "        ", 2, 3.0, "Two" }; //
El string "      " no me lo deserializa

}

static void Main(string[] args)

{

    Program t = new Program();

    t.SerializeAndDeserializeArray("XmlText1.xml");

}

 //Si esta clase Program la generan para una Console Applicantion entonces
van a ver el archivo XML que genera en el mismo directorio, adentro de
\bin\debug\XmlText1.xml

private void SerializeAndDeserializeArray(string filename)

{

     XmlSerializer ser = new XmlSerializer(typeof(Group1));     // Serializo
y genero el XML: XmlText1.xml
     Group1 myGroup1 = new Group1();
     TextWriter writer = new StreamWriter(filename);

     ser.Serialize(writer, myGroup1);

      writer.Close();

     TextReader tr = new StreamReader(filename);

     XmlTextReader xmlReader = new XmlTextReader(tr);

    xmlReader.WhitespaceHandling = WhitespaceHandling.All;

    xmlReader.Normalization = true;

     xmlReader.XmlResolver = null;

     myGroup1 = (Group1)ser.Deserialize(xmlReader);   //Deserializo el XML
XmlText1.xml

     xmlReader.Close();
}

}


Qué puede estar sucediendo? He probado mil cosas y sigo poder deserializar
el string con blancos.
Cualquier idea amigos, es muy bienvenida. :)

Muchas gracias desde ya.

Silvana

Responder a