visual studio online from convertir convert clase c# .net xsd

c# - studio - ¿Cómo generar clases.NET 4.0 desde xsd?



xsd to class c# visual studio 2017 (6)

¿Cuáles son las opciones para generar .NET 4.0 c # clases (entidades) desde un archivo xsd, usando Visual Studio 2010?


La respuesta de Marc Gravel fue correcta para mí, pero mi xsd fue con la extensión de .xml. Cuando usé el programa xsd me dio:
- The table (Amt) cannot be the child table to itself in nested relations.

Según este KB325695 nombre de la extensión de .xml a .xsd y funcionó bien.


Suficientemente simple; simplemente ejecuta (en el símbolo del sistema vs)

xsd your.xsd /classes

(que creará your.cs ). Tenga en cuenta, sin embargo, que la mayoría de las opciones intrínsecas aquí no han cambiado mucho desde 2.0

Para las opciones, use xsd /? o vea MSDN ; por ejemplo /enableDataBinding puede ser útil.


Utilicé xsd.exe en el símbolo del sistema de Windows.

Sin embargo, ya que mi xml hacía referencia a varios xml en línea (en mi caso, http://www.w3.org/1999/xlink.xsd que hace referencia a http://www.w3.org/2001/xml.xsd ) también tuve que descargue esos esquemas, colóquelos en el mismo directorio que mi xsd y luego enumere esos archivos en el comando:

"C: / Archivos de programa (x86) / Microsoft SDKs / Windows / v8.1A / bin / NETFX 4.5.1 Tools / xsd.exe" / classes / language: CS your.xsd xlink.xsd xml.xsd


Utilizo XSD en un script por lotes para generar archivos .xsd y clases desde XML directamente:

set XmlFilename=Your__Xml__Here set WorkingFolder=Your__Xml__Path_Here set XmlExtension=.xml set XsdExtension=.xsd set XSD="C:/Program Files (x86)/Microsoft SDKs/Windows/v8.1A/bin/NETFX 4.5.1/Tools/xsd.exe" set XmlFilePath=%WorkingFolder%%XmlFilename%%XmlExtension% set XsdFilePath=%WorkingFolder%%XmlFilename%%XsdExtension% %XSD% %XmlFilePath% /out:%WorkingFolder% %XSD% %XsdFilePath% /c /out:%WorkingFolder%


xsd.exe como lo menciona Marc Gravell. La forma más rápida de ponerse en marcha IMO.

O si necesitas más flexibilidad / opciones:

xsd2code VS complemento (Codeplex)


xsd.exe no funciona bien cuando tiene referencias circulares (es decir, un tipo puede poseer un elemento de su propio tipo directa o indirectamente).

Cuando existen referencias circulares, uso Xsd2Code. Xsd2Code maneja bien las referencias circulares y funciona dentro del IDE de VS, que es una gran ventaja. También tiene muchas características que puede usar como generar el código de serialización / deserialización. Asegúrese de activar los atributos GenerateXMLA si está generando una serialización (de lo contrario, obtendrá excepciones para ordenar, si no está definido en todos los elementos).

Ninguno funciona bien con la función de elección. terminarás con listas / colecciones de objetos en lugar del tipo que deseas. Recomendaría evitar la elección en su xsd si es posible, ya que esto no se serializa / deserializa bien en una clase fuertemente tipada. Sin embargo, si no te importa esto, entonces no es un problema.

La característica any en xsd2code se deserializa como System.Xml.XmlElement, que me parece muy conveniente, pero puede ser un problema si quieres objetos de tipo fuerte. A menudo utilizo cualquiera cuando se permiten datos de configuración personalizados, por lo que es conveniente pasar un XmlElement a otro deserializador XML que se define de forma personalizada en otro lugar.