Tengo esta función para extraer el XML de un dataset en un MemoryStream:
private MemoryStream XMLData(DataSet ds)
{
// Escribimos el XML en memoria y lo extraemos en un array de bytes.
MemoryStream strm = new MemoryStream();
ds.WriteXml(strm, XmlWriteMode.WriteSchema);
return strm;
}
Funciona bien, pero resulta que ahora la tengo que usar en el .Net Compact
Framework,
y la funcion WriteXml de la clase DataSet no tiene tantas sobrecargas, solo
tiene 2:
1) Escribe en un fichero:
public void WriteXml(string);
2) Escribe en un XmlWriter:
public void WriteXml(XmlWriter, XmlWriteMode);
La primera la descarto, así que opté por la segunda y por suerte el
constructor de XmlTextWriter
acepta un stream, así que la cosa quedaría así:
private MemoryStream XMLData(DataSet ds)
{
MemoryStream strm = new MemoryStream();
XmlTextWriter xml = new XmlTextWriter(strm, Encoding.Default);
ds.WriteXml(xml, XmlWriteMode.WriteSchema);
return strm;
}
Pero el Xml que me genera no se correcto, he probado a poner otro encoder,
Encoding.GetEncoding("windows-1252"), pero no me vale.
¿A alguien se le ocurre una solucion?
Thanks in advance.
Saludos,
Javier Ros Moreno
Aguas de Murcia
Murcia (España)
Leer las respuestas