Vamos a ver como tratar básicamente un xml, las maneras de guardarlo y leerlo con CSharp.
¿Que es?
XML es un lenguaje de etiquetas que sirve para guardar datos, configuraciones, enviar datos a servidor de una forma más ordenada…
Empezamos
Vamos a ver varias formas de leer y escribir un XML, una forma muy fácil es con el objeto DataSet. Me refiero al objeto DataSet creado por código, no al agregado como un elemento.
Primero vamos a crear un esquema, esto nos irá bien porque hay veces que habrá campos que pueden ser nulos y dependiendo de como los generé, no nos enviarán. Se podría leer directamente el XML con los datos, pero como veremos, leer un squema es sencillo. Para ello vamos a añadir un dataset con una tabla y unos campos, así veremos como se genera.
DataSet ds = new DataSet("bebidas"); ds.Tables.Add("Rones"); ds.Tables["Rones"].Columns.Add("Id", Type.GetType("System.Int32")); ds.Tables["Rones"].Columns.Add("Nombre", Type.GetType("System.String")); ds.Tables["Rones"].Columns.Add("Descripcion", Type.GetType("System.String")); ds.Tables["Rones"].Columns.Add("Tipo", Type.GetType("System.String")); ds.WriteXmlSchema("E:\TEMP\esquema.xsd");
De esta manera ya hemos creado el esquema. Para leerlo solo tendríamos que hacer un readXmlSchema:
DataSet ds = new DataSet(); ds.ReadXmlSchema("E:\TEMP\esquema.xsd");
Después solo tendríamos que leer el xml con los datos y ya estaría (recordad que les pongo un espacio después del < para que lo muestre correctamente).
<?xml version="1.0" standalone="yes"?> <xs:schema id="bebidas" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="bebidas" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="Rones"> <xs:complexType> <xs:sequence> <xs:element name="Id" type="xs:int" minOccurs="0" /> <xs:element name="Nombre" type="xs:string" minOccurs="0" /> <xs:element name="Descripcion" type="xs:string" minOccurs="0" /> <xs:element name="Tipo" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema>