2011-07-11 15 views
12

Puedo estar intentando algo que no es posible con la herramienta XSD pero quería preguntar antes de pasar a una solución más simple.Crear MÚLTIPLES archivos de clase basados ​​en un XSD

Tengo un archivo XSD que tiene múltiples elementos (y múltiples tipos complejos) que generarán múltiples clases en un archivo de código (no me gusta esto). Con el objetivo de tener archivos de clase limpios y legibles generados desde la herramienta XSD, me gustaría que cada elemento se coloque en un archivo de código separado, no todos ubicados en un archivo de código como clases parciales.

¿Alguien sabe cómo hacer esto? ¿O es mi única solución para esto romper el XSD en un esquema para cada uno de los elementos xml en el esquema?

El artículo http://msdn.microsoft.com/en-us/library/x6c1kb0s(v=VS.100).aspx de MSDN no proporciona un lenguaje que especifique si se puede o no hacer esto.

Gracias de antemano por cualquier respuesta o comentario.

+0

Creo que pueden tener una manguera, pero si alguien tiene una solución, me gustaría verla. –

+0

No puedo encontrar nada, lo siento. –

Respuesta

12

Esto no responde a su pregunta directamente, pero yo quería tirar un par de cosas:

general me resulta contraproducente para separar el código generado. Siempre me gusta generalmente seguir la regla de "una clase por archivo", pero hago una excepción aquí, porque a menudo trato con esquemas muy grandes. Incluso en su propio directorio, no quiero tener que diferir decenas (a cientos) de archivos cuando genero una nueva versión del código. Me parece muy conveniente tener todo el código generado diffable en un archivo.

Ahora, para ofrecer una posible solución, Resharper tiene la capacidad de extraer todas las clases de un archivo y ponerlas en sus propios archivos. Si hace clic derecho en el archivo en el explorador de soluciones, puede decir Refactorizador → Move types into matching files .... Por supuesto, esto no es tan conveniente como simplemente generarlo de esta manera, pero no conozco una herramienta que lo haga.

+0

Gracias por el tiempo y la respuesta. Usaré sus comentarios mientras trabajo alrededor de mis necesidades para mi proyecto. – AndHeCodedIt

+0

Buena suerte. Publica de nuevo si realmente encuentras una herramienta que hará esto :) – womp

3

El problema que intento resolver es en archivos de clase separados o en uno singular, pero con clases únicas en lugar del mismo espacio de nombres que contiene varias clases. Como resultado, estaba buscando una respuesta similar y encontré esta referencia para compartir Getting xsd.exe To Not Create Duplicate Classes

Esta es una solución simple, pero me llevó mucho tiempo darme cuenta. Debe usar xsd.exe para compilar todas sus clases a la vez, así que en lugar de ejecutar dos comandos separados, solo necesita ejecutar uno: C: \ Solution \ Project> xsd.exe Types.xsd Request.xsd Response. xsd/c Ahora tiene un archivo, Response.xsd, con las tres clases en él.

Cuestiones relacionadas