¿Es posible tener control sobre los nombres de clases que se generan con la herramienta .Net XSD.exe?Clases generadas con nombres de clase personalizados XSD.exe
Respuesta
Por lo que yo sé, no creo que esto sea posible, los nombres de las clases coinciden casi exactamente con lo que está en el esquema.
Personalmente cambiaría los nombres de las clases después de que XSD haya generado el código, pero para ser honesto, por lo general me limito a lo que XSD genera. Es más fácil para alguien más que lee el código comprender qué clases asignan a qué partes del XML.
Como alternativa, si tiene control sobre el esquema, ¿podría actualizar eso?
Básicamente, no. Si se va a escribir las clases de forma manual, podría tener: sin embargo
[XmlType("bar")]
class Foo {}
, no se puede hacer esto con las clases generadas xsd. Desafortunadamente, una de las cosas que no se puede hacer con un partial class
es cambiarle el nombre. Por supuesto, puede usar xsd
para generarlo, cambie el archivo .cs y no lo vuelva a generar, pero eso no es ideal para el mantenimiento.
Cualquier esquema con una anidación algo profunda termina con nombres completamente inútiles.
No conozco una forma de evitar el problema, pero mi consejo para al menos reducir el impacto negativo es el siguiente: defina una lista de alias para los tipos con nombre horrible. De esta forma, puede escribir código que no es completamente ilegible sin perder la capacidad de regeneración.
using AgentAddress = Example.Namespace.DataContract.RootElementNestedElementAgentAddress; ...
Es una lástima esta lista en sí tiene que ser copiar-pegar a todos los archivos de código que lo necesitan, pero creo que esto por lo menos constituye una mejora.
- 1. Generación de clases JAXB con nombres de clase personalizados
- 2. Las clases generadas xsd.exe no serializan los atributos de valor predeterminados
- 3. Valor anulable con la clase generada xsd.exe
- 4. XSD.exe no impone minOccurs
- 5. xsd.exe - esquema a clase - para uso con WCF
- 6. Prefijo de las clases generadas por JAXB
- 7. xsd.exe para generar clases como archivos separados?
- 8. Maven - cómo manejar clases generadas
- 9. Agregar DataAnnontations a las clases parciales generadas
- 10. Nombre de clase de caso de Pascal al generar código con Visual Studio xsd.exe
- 11. ¿Hay alguna manera de hacer que xsd.exe genere clases con ámbito "interno"?
- 12. Clases generadas JAXB serializables con enlace JAX-WS
- 13. JAXB: las clases generadas implementan la interfaz
- 14. ¿Cómo usar las clases de cliente webservice generadas con Eclipse?
- 15. PropertyGrid - ¿Nombres de propiedad personalizados?
- 16. JAXB: ¿Cómo cambiar los nombres de las clases generadas por XJC cuando se especifica el tipo attr en XSD?
- 17. Usar clases generadas JAXB (xjc) en android
- 18. LINQ: nombres de columna personalizados
- 19. Espaciado de nombres y clases
- 20. Agregar métodos personalizados a las clases de datos centrales
- 21. Adición de atributos personalizados a clases de C# con Roslyn
- 22. Nombres de paquetes personalizados cxf-codegen-plugin
- 23. ¿Plantillas de clase con nombres duplicados?
- 24. Problema con la deserialización de XML en clases generadas por XSD
- 25. Derivado de las clases generadas por Entity Framework en C#
- 26. Uso de XSD.exe para generar clases de C# de múltiples esquemas XSD
- 27. Uso de recursos con nombres de controlador personalizados
- 28. Validar nombres de clase/método con regex
- 29. ¿Una clase con 2 nombres?
- 30. Definición del pre-procesador C para nombres de funciones generadas
Esta respuesta puede ser útil http://stackoverflow.com/questions/14853905/can-we-control-type-name-in-xsd-exe-tool-generated-class – Phil