2011-02-03 12 views
29

Siempre que he necesitado crear un archivo de clase a partir de un esquema XML XSD, utilizo la herramienta .NET xsd.exe y preparo eventos, en VS, para asegurar que mi las clases y los esquemas están sincronizados entre sí en tiempo de compilación. Esto por supuesto funciona bien, sin embargo ...Visual Studio 2010: Esquema XML XSD para Clases dentro del IDE

He notado que si el XSD y la clase derivada están en el mismo proyecto, VS entiende la relación y muestra visualmente el CS como hijo del archivo XSD en el explorador de soluciones. Entonces, me preguntaba si existe alguna funcionalidad en Visual Studio 2010 para realizar la creación de clase en el IDE en lugar de confiar en el script prebuild.

Por ejemplo, agregaría el XSD al proyecto, establecí algunas opciones en algún lado y VS toma el control y crea mis clases para mí.

¿VS 2010 es compatible con algo como esto? ¿O debería dejar de preguntarme y continuar usando xsd.exe y precompilar?

EDITAR También he notado que en las propiedades del archivo XSD que tengo la opción de establecer un Custom Tool, la lectura de la descripción que esto parece cerca de lo que mi objetivo, pero estoy seguro de la correcta utilización de esta propiedad.

EDITAR Además, si hay una solución Necesito que esto se basa en las características/funciones que vienen de serie con VS2010. Preferiría no utilizar un complemento de terceros, etc.

+1

Aparece en VS2012 que puede agregar el archivo xsd a su proyecto y generará automáticamente las clases – msmucker0527

Respuesta

13

Visual Studio 2010 en sí mismo no contiene ninguna de esas funciones para el consumo general.

Visual Studio tiene un soporte limitado para esta conversión de XSD a código en el contexto de conjuntos de datos tipeados en ADO.NET, pero esas no son soluciones de propósito general, sino que están dirigidas exactamente a ese escenario de uso.

Pero se echa un vistazo la XSD2Code complemento que hace exactamente eso

enter image description here

+0

. Tengo mucho interés en evitar los complementos de terceros si el complemento debe instalarse en todas las máquinas que utilizan la solución. En el caso de Xsd2Code, ¿sería factible tener el complemento en una sola máquina? – MrEyes

+1

@MrEyes: ** solo ** necesita el complemento en la máquina que se supone debe convertir de XSD a C# - el resto de los programadores simplemente pueden usar el C# generado - sin necesidad de agregar en cada máquina ... .y como dije: no hay ** nada ** de propósito general en VS para hacer esto, así que es un complemento o nada ... –

+0

Instalé Xsd2Code versión 3.4 y no veo el "ejecutar Xsd2Code Generation" "opción de menú cuando hago clic derecho en un archivo xsd en mi solución. También verifiqué si esto funcionó en mi instalación VS2008, sin suerte. Luego instalé la versión 3.4 y probé la versión beta. ¿Lo que da? ¿Estoy haciendo algo mal? – ChadD

3

No solía ser un medio para hacer que en Visual Studio. Podría hacer clic derecho en un esquema xml y había una opción en el menú contextual que decía algo así como "generar conjunto de datos". Solía ​​usarlo con frecuencia y funcionó muy bien. Por alguna misteriosa razón, Microsoft eliminó esa función, ¿tal vez después de VS 2003? No estoy seguro de por qué está bien usar una utilidad de línea de comandos y de que no está bien ejecutar el mismo código desde un menú, pero ahí está.

56

Puede usar el XSD.exe que se encuentra en C:\program files\Microsoft\SDKs\Windows\v7.0A\Bin\xsd.exe. siga los pasos para agregar XSD como un elemento de menú en VS herramientas menú

  1. Agregar archivo XSD a su proyecto VS
  2. Ir al menú de Visual Studio Tools
  3. Ir a herramientas externas
  4. Añadir
  5. Ingrese el Título como XSD
  6. comando como la ruta a xsd en su sistema (normalmente C:\program files\Microsoft SDKs\Windows\v7.0A\Bin\xsd.exe. )
  7. Argumentos como $(ItemPath) /c /l:cs
  8. directorio inicial como $(ItemDir)
  9. verificación de la ventana de salida Uso eso es que pulse OK

A continuación, haga clic en los archivos XSD en el explorador de soluciones y luego herramientas - Xsd clic , esto generará la clase en la misma carpeta que el archivo .XSD. Si ya no agregó el archivo en el paso 1, tendrá que agregar el archivo .cs resultante al proyecto haciendo clic con el botón derecho en el proyecto en el Explorador de soluciones, seleccione Agregar -> Artículo existente y luego el archivo .CS generado a partir de .XSD debe estar presente y puede incluirse.

+0

tu respuesta cae ... "la misma f", ¿cuál es el resto de la respuesta? –

+3

Gracias pero para establecer el espacio de nombres de la clase generada tuve que hacer un pequeño mod. Adjunte/n: "Espacio de nombres aquí" a los argumentos y haga clic en "Preguntar por los agudamientos". Ahora solo necesita cambiar el espacio de nombres aquí en su espacio de nombres cuando aparezca el mensaje. Inicialmente intenté usar el espacio de nombres predeterminado, pero no pude ver la manera de hacerlo. Si alguien conoce una mejor manera, por favor avíseme. Gracias – nfplee

+1

Impresionante. Nunca supe para qué era esa opción de herramientas externas. TANTAS NUEVAS ACTIVIDADES –

Cuestiones relacionadas