Jugando con la información de los XML´s —> xsd.exe (Parte 2)

En el post anterior comentamos cómo deserializar un fichero XML para obtener una serie de instancias de unas clases que lo representan. 


Ahora vamos a realizar lo contrario, a partir de una instancia de la clase Libro, vamos a generar un XML asociado que se ajusta al esquema.


 


Nos creamos un objeto de la clase libro y le añadimos la información del libro a través de las propiedades de la clase que se proporcionan. A continuación con creamos un fichero con la clase FileStream y posteriormente con la clase XmlSerializer serializamos el objeto de la clase Libro que nos hemos creado anteriormente.


 


 




static void Main(string[] args)


{


    Libro milibro = new Libro();


 


    milibro.precio = (double)30;


    milibro.precioSpecified = true;


    milibro.Titulo = “Los tres cerditos”;


    milibro.Autores = new string[] {“Luis”,“Manolo”,“Laura” };


    milibro.Editorial = “MiEditorial”;


 


    FileStream fs = new FileStream(“prueba.xml”, FileMode.Create);


    XmlSerializer xs = new XmlSerializer(typeof(Libro));


    xs.Serialize(fs, milibro);


    fs.Close();


}


Nota:  Si nos fijamos en la clase Libro que se ha generado podemos ver como para el atributo precio hay un atributo en la clase que representa al mismo y otro de tipo boleano asociado. Esto se debe a que para los elementos que pueden o no aparecer (minOccurs=0) o para el caso de los atributos, que nunca son obligatorios, debemos indicar si queremos que se serialicen o no. Para ello en este caso indicamos que precioSpecified=true.


 


El resultado del ejemplo anterior seria el siguiente documento XML:


 




<?xml version=1.0?>


<Libro xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:xsd=http://www.w3.org/2001/XMLSchema precio=30>


 


  <Titulo>Los tres cerditos</Titulo>


  <Autores>Luis</Autores>


  <Autores>Manolo</Autores>


  <Autores>Laura</Autores>


  <Editorial>MiEditorial</Editorial>


</Libro>


 


Y esto ha sido todo para serializar y deserializar objetos en ficheros XML.

pedro posted at 2007-8-6 Category: Sin categoría