2010-05-21 17 views
5

Sé que esta es una pregunta vaga y abierta. Espero obtener una dirección general.¿Cuál es la mejor manera de leer y escribir documentos cXML en C#?

Necesito agregar cXML punchout a un sitio/aplicación ASP.NET C#. Esto está reemplazando algo que escribí hace años en ColdFusion.

Soy un desarrollador C bastante experimentado pero no he hecho mucho con XML. Parece que hay muchas opciones diferentes para procesar XML en .NET.

Aquí está la pregunta abierta: Suponiendo que tengo un documento XML en alguna forma, por ejemplo, un archivo o una cadena, ¿cuál es la mejor manera de leerlo en mi código? Quiero obtener los datos y luego consultar las bases de datos, etc. El tamaño del documento cXML y nuestros volúmenes de tráfico son lo suficientemente pequeños para que cargar un documento cXML en la memoria no sea un problema.

¿Debo:

1) manual de construcción de clases basadas en el DTD y utilizar el serializador XML?

2) Use una herramienta para generar clases. Hay ejemplos de archivos cXML descargables desde Ariba.com. Intenté xsd.exe para generar un xsd y luego xsd.exe/c para generar clases. Cuando trato de deserializar recibo errores porque parece haber "confusión" sobre si algunos elementos deben ser valores individuales o matrices.

Probé la herramienta en línea CodeXS pero eso da errores en su registro y errores si intento deserializar un documento de muestra.

2) Crear un conjunto de datos y ReadXml()?

3) Crear un conjunto de datos tipeados y ReadXml()?

4) Utilice Linq para XML. A menudo utilizo Linq para objetos, así que estoy familiarizado con Linq en general, pero estoy luchando para ver lo que me da en esta situación.

5) Algunos otros medios.

Creo que necesito mejorar mi comprensión de XML en general, pero aun así ... ¿me falta alguna forma obvia de hacerlo? En el antiguo sitio de ColdFusion encontré un componente gratuito ("etiqueta") que básicamente ignoraba cualquier esquema y leía el XML en una "estructura" que es esencialmente una serie de tablas hash anidadas que luego era fácil de leer en el código. Eso fue probablemente bastante descuidado pero funcionó.

También necesito generar archivos XML desde mis objetos C#. Quizás Linq to XML será bueno para eso. Podría comenzar con un documento predeterminado de "plantilla" y manipularlo antes de guardarlo.

Gracias por cualquier punteros ...

+0

No es un engaño, pero échale un vistazo aquí: http://stackoverflow.com/questions/444116/what-are-the-best-functions-practices-and-or-techniques-to-read-write- xml-with –

Respuesta

1

Si necesita generar XML arbitraria en un formato exacto, se debe generar manualmente utilizando LINQ to XML.

+0

Gracias. Linq to XML fue definitivamente la forma más fácil de hacerlo. – tetranz

+0

Sí; usualmente es :) – SLaks

Cuestiones relacionadas