2009-04-19 25 views
14

El uso de JAXB en Java es fácil de generar a partir de un archivo de esquema xml un conjunto de clases de Java que pueden deserializarse con xml conforme a ese esquema.equivalente de Jaxb en C#

¿Hay algún equivalente en C# de JAXB? Sé que Linq puede serializar y deserializar clases a/desde archivos xml. Pero, ¿cómo puedo generar clases C# desde el archivo de esquema xml y luego usar estas clases con linq?

Respuesta

15

Si está usando Visual Studio, intente con XML Schema Definition Tool. Toma sus definiciones de esquema y produce clases C#, o puede ir en sentido contrario y producir definiciones de esquema a partir de las clases. También tiene una serie de otras transformaciones relacionadas con XML.

+0

En realidad, XSD puede generar clases en C#, VB.NET, JScript o C++. Ver el interruptor/idioma. –

+0

Lo siento, no quise dar a entender que no podría. Su pregunta solo se refería a las clases de C#. Pero sí, el modificador/language es útil. –

+3

No es necesario que tenga Visual Studio. XSD.EXE es parte del .NET SDK. –

4

Hay una herramienta mejor de Microsoft llamada XsdObjectGen, el generador de código de objeto XSD. Es como xsd.exe, pero mejor. También es gratis, no es parte del .NET SDK, pero es una descarga separada.

Véase también la pregunta SO: XSDObjectGen vs Xsd.exe

1

ver en el uso conjunto de datos. Es un concepto diferente del uso de "Java Beans". Todo el documento XML se trata conjunto jerárquico de tablas, todas en una sola clase. La parte buena es que la teoría de la encapsulación para OOP se aplica realmente. Wow, Microsoft consiguió algo correcto que Sun atormentó.

De todos modos. También puede consultar los DataSet escritos si desea que las cosas sean más interesantes. Lo he usado en grandes proyectos con gran éxito.