Gerar a Classe C# do XML

Posso gerar uma classe C# a partir de um ficheiro XML?

 210
Author: hdoghmen, 2010-11-17

8 answers

Sim, 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'.
 298
Author: Darin Dimitrov, 2010-11-17 10:41:16

Se estiver a trabalhar no Projecto. Net 4. 5 em VS 2012 (ou mais recente), pode apenas Colar especial o seu ficheiro XML como classes.

  1. copiar o conteúdo do seu ficheiro XML para a área de transferência
  2. no editor, seleccione o local onde deseja que as suas aulas sejam coladas
  3. no menu, seleccione EDIT > Paste Special > Paste XML As Classes
 361
Author: miszczu, 2015-06-13 12:18:24
A princípio pensei que o prato especial era o Santo Graal! Mas depois tentei e o meu cabelo ficou branco como no filme do Indiana Jones.

Mas agora uso http://xmltocsharp.azurewebsites.net e agora estou tão jovem como sempre.

Aqui está um segmento do que gerou:
namespace Xml2CSharp
{
    [XmlRoot(ElementName="entry")]
    public class Entry {
        [XmlElement(ElementName="hybrisEntryID")]
        public string HybrisEntryID { get; set; }
        [XmlElement(ElementName="mapicsLineSequenceNumber")]
        public string MapicsLineSequenceNumber { get; set; }
 32
Author: D. Kermott, 2016-06-15 15:37:42

Eu percebo que este é um post bastante velho e você provavelmente seguiu em frente.

Mas eu tinha o mesmo problema que tu, por isso decidi escrever o meu próprio programa.

O problema com a rota" xml -> XSD - > " para mim foi que acabou de gerar um monte de código que era completamente inatingível e acabei por o descarregar.

Não é elegante, mas fez o trabalho por mim.

Pode obtê-lo aqui: por favor, faça sugestões se quiser ele.

SimpleXmlToCode

 22
Author: Talon, 2013-03-26 10:16:03

Devias considerar a questão do svcutil ()

Ambos xsd.o exe e o svcutil operam no ficheiro XML schema (.xsd). Seu XML deve conformar-se a um arquivo schema a ser usado por qualquer uma destas duas ferramentas.

Note que também existem várias ferramentas de terceiros para isso.

 6
Author: ng5000, 2017-05-23 12:10:47

Pode usar xsd como sugerido pelo Darin.

Além disso, recomenda-se editar o teste.XSD-file para criar um esquema mais razoável.

type="xs:string" pode ser alterada para type="xs:int" para valores inteiros
minOccurs="0" pode ser alterada para minOccurs="1" onde o campo é obrigatório
maxOccurs="unbounded" pode ser alterada para maxOccurs="1", onde apenas um item é permitido

Você pode criar xsd-s mais avançados se quiser validar mais os seus dados, mas isto irá, pelo menos, dar-lhe tipos de dados razoáveis em o c#gerado.

 3
Author: Albin Sunnanbo, 2010-11-17 11:10:56

Usar a sintaxe abaixo para criar a classe schema a partir do ficheiro XSD.

C:\xsd C:\Test\test-Schema.xsd /classes /language:cs /out:C:\Test\
 0
Author: Kiran.Bakwad, 2017-09-11 15:22:00

Para converter XML numa Classe C#:

    Navegue até ao Mercado Microsoft Visual Studio: -- https://marketplace.visualstudio.com
  • na barra de pesquisa indique o texto: -- ferramenta de código xml para classe
  • transferir, instalar e usar o aplicativo
Nota: na plenitude do tempo, este aplicativo pode ser substituído, mas é provável que haja outra ferramenta que faça a mesma coisa.
 0
Author: J Wood, 2018-03-14 00:31:56