Generar clase C# desde XML

Resuelto user496949 asked hace 14 años • 9 respuestas

¿Puedo generar una clase C# a partir de un archivo XML?

user496949 avatar Nov 17 '10 17:11 user496949
Aceptado

Si está trabajando en un proyecto .NET 4.5 en VS 2012 (o posterior), puede simplemente pegar de forma especial su archivo XML como clases.

  1. Copie el contenido de su archivo XML al portapapeles
  2. En el editor, seleccione el lugar donde desea que se peguen sus clases.
  3. En el menú, seleccioneEDIT > Paste Special > Paste XML As Classes
miszczu avatar Jun 26 '2013 09:06 miszczu

Sí, usando xsd.exe

D:\temp>xsd test.xml
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 4.0.30319.1]
Copyright (C) Microsoft Corporation. All rights reserved.
Writing file 'D:\temp\test.xsd'.

D:\temp>xsd test.xsd /classes
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 4.0.30319.1]
Copyright (C) Microsoft Corporation. All rights reserved.
Writing file 'D:\temp\test.cs'.

Notas

Puede resultar útil responder cómo cambiar el directorio en el símbolo del sistema del desarrollador a d:\temp.

Si genera clases para matrices multidimensionales, hay un error en el generador XSD.exe, pero existen soluciones .

Darin Dimitrov avatar Nov 17 '2010 10:11 Darin Dimitrov

¡Al principio pensé que el Pegado Especial era el santo grial! Pero luego lo probé y mi cabello se volvió blanco como en la película de Indiana Jones.

Pero ahora uso http://xmltocsharp.azurewebsites.net/ y soy tan joven como siempre.

Aquí hay un segmento de lo que generó:

namespace Xml2CSharp
{
    [XmlRoot(ElementName="entry")]
    public class Entry {
        [XmlElement(ElementName="hybrisEntryID")]
        public string HybrisEntryID { get; set; }
        [XmlElement(ElementName="mapicsLineSequenceNumber")]
        public string MapicsLineSequenceNumber { get; set; }
D. Kermott avatar Jun 15 '2016 15:06 D. Kermott

Tuve el mismo problema que tú, así que decidí escribir mi propio programa.

El problema con la ruta "xml -> xsd -> clases" para mí fue que simplemente generó un trozo de código que era completamente imposible de mantener y terminé destruyéndolo.

No es de ninguna manera elegante pero hizo el trabajo para mí. Puedes conseguirlo aquí: SimpleXmlToCode

Por favor haz sugerencias si te gusta.

Talon avatar Mar 05 '2013 05:03 Talon

Deberías considerar svcutil ( pregunta svcutil )

Tanto xsd.exe como svcutil operan en el archivo de esquema XML (.xsd). Su XML debe ajustarse a un archivo de esquema para ser utilizado por cualquiera de estas dos herramientas.

Tenga en cuenta que también existen varias herramientas de terceros para esto.

ng5000 avatar Nov 17 '2010 10:11 ng5000